asmcrypto.js ➔ pbkdf2_reset   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
c 1
b 0
f 1
dl 0
loc 7
rs 9.4285
1
/*! asmCrypto, (c) 2013 Artem S Vybornov, opensource.org/licenses/MIT */
2
(function ( exports, global ) {
3
4
function IllegalStateError () { var err = Error.apply( this, arguments ); this.message = err.message, this.stack = err.stack; }
5
IllegalStateError.prototype = Object.create( Error.prototype, { name: { value: 'IllegalStateError' } } );
6
7
function IllegalArgumentError () { var err = Error.apply( this, arguments ); this.message = err.message, this.stack = err.stack; }
8
IllegalArgumentError.prototype = Object.create( Error.prototype, { name: { value: 'IllegalArgumentError' } } );
9
10
function SecurityError () { var err = Error.apply( this, arguments ); this.message = err.message, this.stack = err.stack; }
11
SecurityError.prototype = Object.create( Error.prototype, { name: { value: 'SecurityError' } } );
12
13
var FloatArray = global.Float64Array || global.Float32Array; // make PhantomJS happy
14
15 View Code Duplication
function string_to_bytes ( str, utf8 ) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
16
    utf8 = !!utf8;
17
18
    var len = str.length,
19
        bytes = new Uint8Array( utf8 ? 4*len : len );
20
21
    for ( var i = 0, j = 0; i < len; i++ ) {
22
        var c = str.charCodeAt(i);
23
24
        if ( utf8 && 0xd800 <= c && c <= 0xdbff ) {
25
            if ( ++i >= len ) throw new Error( "Malformed string, low surrogate expected at position " + i );
26
            c = ( (c ^ 0xd800) << 10 ) | 0x10000 | ( str.charCodeAt(i) ^ 0xdc00 );
27
        }
28
        else if ( !utf8 && c >>> 8 ) {
29
            throw new Error("Wide characters are not allowed.");
30
        }
31
32
        if ( !utf8 || c <= 0x7f ) {
33
            bytes[j++] = c;
34
        }
35
        else if ( c <= 0x7ff ) {
36
            bytes[j++] = 0xc0 | (c >> 6);
37
            bytes[j++] = 0x80 | (c & 0x3f);
38
        }
39
        else if ( c <= 0xffff ) {
40
            bytes[j++] = 0xe0 | (c >> 12);
41
            bytes[j++] = 0x80 | (c >> 6 & 0x3f);
42
            bytes[j++] = 0x80 | (c & 0x3f);
43
        }
44
        else {
45
            bytes[j++] = 0xf0 | (c >> 18);
46
            bytes[j++] = 0x80 | (c >> 12 & 0x3f);
47
            bytes[j++] = 0x80 | (c >> 6 & 0x3f);
48
            bytes[j++] = 0x80 | (c & 0x3f);
49
        }
50
    }
51
52
    return bytes.subarray(0, j);
53
}
54
55
function hex_to_bytes ( str ) {
56
    var len = str.length;
57
    if ( len & 1 ) {
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
58
        str = '0'+str;
59
        len++;
60
    }
61
    var bytes = new Uint8Array(len>>1);
62
    for ( var i = 0; i < len; i += 2 ) {
63
        bytes[i>>1] = parseInt( str.substr( i, 2), 16 );
64
    }
65
    return bytes;
66
}
67
68
function base64_to_bytes ( str ) {
69
    return string_to_bytes( atob( str ) );
70
}
71
72 View Code Duplication
function bytes_to_string ( bytes, utf8 ) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
73
    utf8 = !!utf8;
74
75
    var len = bytes.length,
76
        chars = new Array(len);
77
78
    for ( var i = 0, j = 0; i < len; i++ ) {
79
        var b = bytes[i];
80
        if ( !utf8 || b < 128 ) {
81
            chars[j++] = b;
82
        }
83
        else if ( b >= 192 && b < 224 && i+1 < len ) {
84
            chars[j++] = ( (b & 0x1f) << 6 ) | (bytes[++i] & 0x3f);
85
        }
86
        else if ( b >= 224 && b < 240 && i+2 < len ) {
87
            chars[j++] = ( (b & 0xf) << 12 ) | ( (bytes[++i] & 0x3f) << 6 ) | (bytes[++i] & 0x3f);
88
        }
89
        else if ( b >= 240 && b < 248 && i+3 < len ) {
90
            var c = ( (b & 7) << 18 ) | ( (bytes[++i] & 0x3f) << 12 ) | ( (bytes[++i] & 0x3f) << 6 ) | (bytes[++i] & 0x3f);
91
            if ( c <= 0xffff ) {
92
                chars[j++] = c;
93
            }
94
            else {
95
                c ^= 0x10000;
96
                chars[j++] = 0xd800 | (c >> 10);
97
                chars[j++] = 0xdc00 | (c & 0x3ff);
98
            }
99
        }
100
        else {
101
            throw new Error("Malformed UTF8 character at byte offset " + i);
102
        }
103
    }
104
105
    var str = '',
106
        bs = 16384;
107
    for ( var i = 0; i < j; i += bs ) {
108
        str += String.fromCharCode.apply( String, chars.slice( i, i+bs <= j ? i+bs : j ) );
109
    }
110
111
    return str;
112
}
113
114
function bytes_to_hex ( arr ) {
115
    var str = '';
116
    for ( var i = 0; i < arr.length; i++ ) {
117
        var h = ( arr[i] & 0xff ).toString(16);
118
        if ( h.length < 2 ) str += '0';
119
        str += h;
120
    }
121
    return str;
122
}
123
124
function bytes_to_base64 ( arr ) {
125
    return btoa( bytes_to_string(arr) );
126
}
127
128
function pow2_ceil ( a ) {
129
    a -= 1;
130
    a |= a >>> 1;
131
    a |= a >>> 2;
132
    a |= a >>> 4;
133
    a |= a >>> 8;
134
    a |= a >>> 16;
135
    a += 1;
136
    return a;
137
}
138
139
function is_number ( a ) {
140
    return ( typeof a === 'number' );
141
}
142
143
function is_string ( a ) {
144
    return ( typeof a === 'string' );
145
}
146
147
function is_buffer ( a ) {
148
    return ( a instanceof ArrayBuffer );
149
}
150
151
function is_bytes ( a ) {
152
    return ( a instanceof Uint8Array );
153
}
154
155
function is_typed_array ( a ) {
156
    return ( a instanceof Int8Array ) || ( a instanceof Uint8Array )
157
        || ( a instanceof Int16Array ) || ( a instanceof Uint16Array )
158
        || ( a instanceof Int32Array ) || ( a instanceof Uint32Array )
159
        || ( a instanceof Float32Array )
160
        || ( a instanceof Float64Array );
161
}
162
163
function _heap_init ( constructor, options ) {
164
    var heap = options.heap,
165
        size = heap ? heap.byteLength : options.heapSize || 65536;
166
167
    if ( size & 0xfff || size <= 0 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
168
        throw new Error("heap size must be a positive integer and a multiple of 4096");
169
170
    heap = heap || new constructor( new ArrayBuffer(size) );
171
172
    return heap;
173
}
174
175
function _heap_write ( heap, hpos, data, dpos, dlen ) {
176
    var hlen = heap.length - hpos,
177
        wlen = ( hlen < dlen ) ? hlen : dlen;
178
179
    heap.set( data.subarray( dpos, dpos+wlen ), hpos );
180
181
    return wlen;
182
}
183
184
function hash_reset () {
185
    this.result = null;
186
    this.pos = 0;
187
    this.len = 0;
188
189
    this.asm.reset();
190
191
    return this;
192
}
193
194
function hash_process ( data ) {
195
    if ( this.result !== null )
196
        throw new IllegalStateError("state must be reset before processing new data");
197
198
    if ( is_string(data) )
199
        data = string_to_bytes(data);
200
201
    if ( is_buffer(data) )
202
        data = new Uint8Array(data);
203
204
    if ( !is_bytes(data) )
205
        throw new TypeError("data isn't of expected type");
206
207
    var asm = this.asm,
208
        heap = this.heap,
209
        hpos = this.pos,
210
        hlen = this.len,
211
        dpos = 0,
212
        dlen = data.length,
213
        wlen = 0;
214
215
    while ( dlen > 0 ) {
216
        wlen = _heap_write( heap, hpos+hlen, data, dpos, dlen );
217
        hlen += wlen;
218
        dpos += wlen;
219
        dlen -= wlen;
220
221
        wlen = asm.process( hpos, hlen );
222
223
        hpos += wlen;
224
        hlen -= wlen;
225
226
        if ( !hlen ) hpos = 0;
227
    }
228
229
    this.pos = hpos;
230
    this.len = hlen;
231
232
    return this;
233
}
234
235
function hash_finish () {
236
    if ( this.result !== null )
237
        throw new IllegalStateError("state must be reset before processing new data");
238
239
    this.asm.finish( this.pos, this.len, 0 );
240
241
    this.result = new Uint8Array(this.HASH_SIZE);
242
    this.result.set( this.heap.subarray( 0, this.HASH_SIZE ) );
243
244
    this.pos = 0;
245
    this.len = 0;
246
247
    return this;
248
}
249
250 View Code Duplication
function sha512_asm ( stdlib, foreign, buffer ) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
251
    "use asm";
0 ignored issues
show
Unused Code introduced by
The expression "use asm" has no effects. Consider removing it.
Loading history...
252
253
    // SHA512 state
254
    var H0h = 0, H0l = 0, H1h = 0, H1l = 0, H2h = 0, H2l = 0, H3h = 0, H3l = 0,
255
        H4h = 0, H4l = 0, H5h = 0, H5l = 0, H6h = 0, H6l = 0, H7h = 0, H7l = 0,
256
        TOTAL0 = 0, TOTAL1 = 0;
257
258
    // HMAC state
259
    var I0h = 0, I0l = 0, I1h = 0, I1l = 0, I2h = 0, I2l = 0, I3h = 0, I3l = 0,
260
        I4h = 0, I4l = 0, I5h = 0, I5l = 0, I6h = 0, I6l = 0, I7h = 0, I7l = 0,
261
        O0h = 0, O0l = 0, O1h = 0, O1l = 0, O2h = 0, O2l = 0, O3h = 0, O3l = 0,
262
        O4h = 0, O4l = 0, O5h = 0, O5l = 0, O6h = 0, O6l = 0, O7h = 0, O7l = 0;
263
264
    // I/O buffer
265
    var HEAP = new stdlib.Uint8Array(buffer);
266
267
    function _core ( w0h, w0l, w1h, w1l, w2h, w2l, w3h, w3l, w4h, w4l, w5h, w5l, w6h, w6l, w7h, w7l, w8h, w8l, w9h, w9l, w10h, w10l, w11h, w11l, w12h, w12l, w13h, w13l, w14h, w14l, w15h, w15l ) {
268
        w0h = w0h|0;
269
        w0l = w0l|0;
270
        w1h = w1h|0;
271
        w1l = w1l|0;
272
        w2h = w2h|0;
273
        w2l = w2l|0;
274
        w3h = w3h|0;
275
        w3l = w3l|0;
276
        w4h = w4h|0;
277
        w4l = w4l|0;
278
        w5h = w5h|0;
279
        w5l = w5l|0;
280
        w6h = w6h|0;
281
        w6l = w6l|0;
282
        w7h = w7h|0;
283
        w7l = w7l|0;
284
        w8h = w8h|0;
285
        w8l = w8l|0;
286
        w9h = w9h|0;
287
        w9l = w9l|0;
288
        w10h = w10h|0;
289
        w10l = w10l|0;
290
        w11h = w11h|0;
291
        w11l = w11l|0;
292
        w12h = w12h|0;
293
        w12l = w12l|0;
294
        w13h = w13h|0;
295
        w13l = w13l|0;
296
        w14h = w14h|0;
297
        w14l = w14l|0;
298
        w15h = w15h|0;
299
        w15l = w15l|0;
300
301
        var ah = 0, al = 0, bh = 0, bl = 0, ch = 0, cl = 0, dh = 0, dl = 0, eh = 0, el = 0, fh = 0, fl = 0, gh = 0, gl = 0, hh = 0, hl = 0,
302
            th = 0, tl = 0, xl = 0;
303
304
        ah = H0h;
305
        al = H0l;
306
        bh = H1h;
307
        bl = H1l;
308
        ch = H2h;
309
        cl = H2l;
310
        dh = H3h;
311
        dl = H3l;
312
        eh = H4h;
313
        el = H4l;
314
        fh = H5h;
315
        fl = H5l;
316
        gh = H6h;
317
        gl = H6l;
318
        hh = H7h;
319
        hl = H7l;
320
321
        // 0
322
        tl = ( 0xd728ae22 + w0l )|0;
323
        th = ( 0x428a2f98 + w0h + ((tl >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
324
        tl = ( tl + hl )|0;
325
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
326
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
327
        tl = ( tl + xl )|0;
328
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
329
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
330
        tl = ( tl + xl )|0;
331
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
332
        hl = gl; hh = gh;
333
        gl = fl; gh = fh;
334
        fl = el; fh = eh;
335
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
336
        dl = cl; dh = ch;
337
        cl = bl; ch = bh;
338
        bl = al; bh = ah;
339
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
340
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
341
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
342
        al = ( al + xl )|0;
343
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
344
345
        // 1
346
        tl = ( 0x23ef65cd + w1l )|0;
347
        th = ( 0x71374491 + w1h + ((tl >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
348
        tl = ( tl + hl )|0;
349
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
350
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
351
        tl = ( tl + xl )|0;
352
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
353
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
354
        tl = ( tl + xl )|0;
355
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
356
        hl = gl; hh = gh;
357
        gl = fl; gh = fh;
358
        fl = el; fh = eh;
359
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
360
        dl = cl; dh = ch;
361
        cl = bl; ch = bh;
362
        bl = al; bh = ah;
363
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
364
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
365
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
366
        al = ( al + xl )|0;
367
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
368
369
        // 2
370
        tl = ( 0xec4d3b2f + w2l )|0;
371
        th = ( 0xb5c0fbcf + w2h + ((tl >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
372
        tl = ( tl + hl )|0;
373
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
374
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
375
        tl = ( tl + xl )|0;
376
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
377
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
378
        tl = ( tl + xl )|0;
379
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
380
        hl = gl; hh = gh;
381
        gl = fl; gh = fh;
382
        fl = el; fh = eh;
383
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
384
        dl = cl; dh = ch;
385
        cl = bl; ch = bh;
386
        bl = al; bh = ah;
387
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
388
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
389
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
390
        al = ( al + xl )|0;
391
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
392
393
        // 3
394
        tl = ( 0x8189dbbc + w3l )|0;
395
        th = ( 0xe9b5dba5 + w3h + ((tl >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
396
        tl = ( tl + hl )|0;
397
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
398
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
399
        tl = ( tl + xl )|0;
400
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
401
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
402
        tl = ( tl + xl )|0;
403
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
404
        hl = gl; hh = gh;
405
        gl = fl; gh = fh;
406
        fl = el; fh = eh;
407
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
408
        dl = cl; dh = ch;
409
        cl = bl; ch = bh;
410
        bl = al; bh = ah;
411
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
412
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
413
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
414
        al = ( al + xl )|0;
415
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
416
417
        // 4
418
        tl = ( 0xf348b538 + w4l )|0;
419
        th = ( 0x3956c25b + w4h + ((tl >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
420
        tl = ( tl + hl )|0;
421
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
422
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
423
        tl = ( tl + xl )|0;
424
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
425
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
426
        tl = ( tl + xl )|0;
427
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
428
        hl = gl; hh = gh;
429
        gl = fl; gh = fh;
430
        fl = el; fh = eh;
431
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
432
        dl = cl; dh = ch;
433
        cl = bl; ch = bh;
434
        bl = al; bh = ah;
435
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
436
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
437
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
438
        al = ( al + xl )|0;
439
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
440
441
        // 5
442
        tl = ( 0xb605d019 + w5l )|0;
443
        th = ( 0x59f111f1 + w5h + ((tl >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
444
        tl = ( tl + hl )|0;
445
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
446
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
447
        tl = ( tl + xl )|0;
448
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
449
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
450
        tl = ( tl + xl )|0;
451
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
452
        hl = gl; hh = gh;
453
        gl = fl; gh = fh;
454
        fl = el; fh = eh;
455
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
456
        dl = cl; dh = ch;
457
        cl = bl; ch = bh;
458
        bl = al; bh = ah;
459
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
460
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
461
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
462
        al = ( al + xl )|0;
463
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
464
465
        // 6
466
        tl = ( 0xaf194f9b + w6l )|0;
467
        th = ( 0x923f82a4 + w6h + ((tl >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
468
        tl = ( tl + hl )|0;
469
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
470
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
471
        tl = ( tl + xl )|0;
472
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
473
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
474
        tl = ( tl + xl )|0;
475
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
476
        hl = gl; hh = gh;
477
        gl = fl; gh = fh;
478
        fl = el; fh = eh;
479
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
480
        dl = cl; dh = ch;
481
        cl = bl; ch = bh;
482
        bl = al; bh = ah;
483
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
484
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
485
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
486
        al = ( al + xl )|0;
487
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
488
489
        // 7
490
        tl = ( 0xda6d8118 + w7l )|0;
491
        th = ( 0xab1c5ed5 + w7h + ((tl >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
492
        tl = ( tl + hl )|0;
493
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
494
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
495
        tl = ( tl + xl )|0;
496
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
497
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
498
        tl = ( tl + xl )|0;
499
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
500
        hl = gl; hh = gh;
501
        gl = fl; gh = fh;
502
        fl = el; fh = eh;
503
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
504
        dl = cl; dh = ch;
505
        cl = bl; ch = bh;
506
        bl = al; bh = ah;
507
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
508
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
509
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
510
        al = ( al + xl )|0;
511
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
512
513
        // 8
514
        tl = ( 0xa3030242 + w8l )|0;
515
        th = ( 0xd807aa98 + w8h + ((tl >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
516
        tl = ( tl + hl )|0;
517
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
518
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
519
        tl = ( tl + xl )|0;
520
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
521
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
522
        tl = ( tl + xl )|0;
523
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
524
        hl = gl; hh = gh;
525
        gl = fl; gh = fh;
526
        fl = el; fh = eh;
527
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
528
        dl = cl; dh = ch;
529
        cl = bl; ch = bh;
530
        bl = al; bh = ah;
531
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
532
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
533
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
534
        al = ( al + xl )|0;
535
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
536
537
        // 9
538
        tl = ( 0x45706fbe + w9l )|0;
539
        th = ( 0x12835b01 + w9h + ((tl >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
540
        tl = ( tl + hl )|0;
541
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
542
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
543
        tl = ( tl + xl )|0;
544
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
545
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
546
        tl = ( tl + xl )|0;
547
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
548
        hl = gl; hh = gh;
549
        gl = fl; gh = fh;
550
        fl = el; fh = eh;
551
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
552
        dl = cl; dh = ch;
553
        cl = bl; ch = bh;
554
        bl = al; bh = ah;
555
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
556
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
557
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
558
        al = ( al + xl )|0;
559
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
560
561
        // 10
562
        tl = ( 0x4ee4b28c + w10l )|0;
563
        th = ( 0x243185be + w10h + ((tl >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
564
        tl = ( tl + hl )|0;
565
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
566
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
567
        tl = ( tl + xl )|0;
568
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
569
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
570
        tl = ( tl + xl )|0;
571
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
572
        hl = gl; hh = gh;
573
        gl = fl; gh = fh;
574
        fl = el; fh = eh;
575
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
576
        dl = cl; dh = ch;
577
        cl = bl; ch = bh;
578
        bl = al; bh = ah;
579
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
580
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
581
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
582
        al = ( al + xl )|0;
583
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
584
585
        // 11
586
        tl = ( 0xd5ffb4e2 + w11l )|0;
587
        th = ( 0x550c7dc3 + w11h + ((tl >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
588
        tl = ( tl + hl )|0;
589
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
590
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
591
        tl = ( tl + xl )|0;
592
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
593
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
594
        tl = ( tl + xl )|0;
595
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
596
        hl = gl; hh = gh;
597
        gl = fl; gh = fh;
598
        fl = el; fh = eh;
599
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
600
        dl = cl; dh = ch;
601
        cl = bl; ch = bh;
602
        bl = al; bh = ah;
603
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
604
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
605
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
606
        al = ( al + xl )|0;
607
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
608
609
        // 12
610
        tl = ( 0xf27b896f + w12l )|0;
611
        th = ( 0x72be5d74 + w12h + ((tl >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
612
        tl = ( tl + hl )|0;
613
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
614
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
615
        tl = ( tl + xl )|0;
616
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
617
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
618
        tl = ( tl + xl )|0;
619
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
620
        hl = gl; hh = gh;
621
        gl = fl; gh = fh;
622
        fl = el; fh = eh;
623
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
624
        dl = cl; dh = ch;
625
        cl = bl; ch = bh;
626
        bl = al; bh = ah;
627
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
628
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
629
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
630
        al = ( al + xl )|0;
631
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
632
633
        // 13
634
        tl = ( 0x3b1696b1 + w13l )|0;
635
        th = ( 0x80deb1fe + w13h + ((tl >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
636
        tl = ( tl + hl )|0;
637
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
638
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
639
        tl = ( tl + xl )|0;
640
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
641
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
642
        tl = ( tl + xl )|0;
643
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
644
        hl = gl; hh = gh;
645
        gl = fl; gh = fh;
646
        fl = el; fh = eh;
647
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
648
        dl = cl; dh = ch;
649
        cl = bl; ch = bh;
650
        bl = al; bh = ah;
651
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
652
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
653
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
654
        al = ( al + xl )|0;
655
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
656
657
        // 14
658
        tl = ( 0x25c71235 + w14l )|0;
659
        th = ( 0x9bdc06a7 + w14h + ((tl >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
660
        tl = ( tl + hl )|0;
661
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
662
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
663
        tl = ( tl + xl )|0;
664
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
665
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
666
        tl = ( tl + xl )|0;
667
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
668
        hl = gl; hh = gh;
669
        gl = fl; gh = fh;
670
        fl = el; fh = eh;
671
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
672
        dl = cl; dh = ch;
673
        cl = bl; ch = bh;
674
        bl = al; bh = ah;
675
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
676
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
677
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
678
        al = ( al + xl )|0;
679
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
680
681
        // 15
682
        tl = ( 0xcf692694 + w15l )|0;
683
        th = ( 0xc19bf174 + w15h + ((tl >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
684
        tl = ( tl + hl )|0;
685
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
686
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
687
        tl = ( tl + xl )|0;
688
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
689
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
690
        tl = ( tl + xl )|0;
691
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
692
        hl = gl; hh = gh;
693
        gl = fl; gh = fh;
694
        fl = el; fh = eh;
695
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
696
        dl = cl; dh = ch;
697
        cl = bl; ch = bh;
698
        bl = al; bh = ah;
699
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
700
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
701
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
702
        al = ( al + xl )|0;
703
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
704
705
        // 16
706
        w0l = ( w0l + w9l )|0;
707
        w0h = ( w0h + w9h + ((w0l >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
708
        xl = ( ((w1l >>> 1) | (w1h << 31)) ^ ((w1l >>> 8) | (w1h << 24)) ^ ((w1l >>> 7) | (w1h << 25)) )|0;
709
        w0l = ( w0l + xl)|0;
710
        w0h = ( w0h + ( ((w1h >>> 1) | (w1l << 31)) ^ ((w1h >>> 8) | (w1l << 24)) ^ (w1h >>> 7) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
711
        xl = ( ((w14l >>> 19) | (w14h << 13)) ^ ((w14l << 3) | (w14h >>> 29)) ^ ((w14l >>> 6) | (w14h << 26)) )|0;
712
        w0l = ( w0l + xl)|0;
713
        w0h = ( w0h + ( ((w14h >>> 19) | (w14l << 13)) ^ ((w14h << 3) | (w14l >>> 29)) ^ (w14h >>> 6) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
714
        tl = ( 0x9ef14ad2 + w0l )|0;
715
        th = ( 0xe49b69c1 + w0h + ((tl >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
716
        tl = ( tl + hl )|0;
717
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
718
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
719
        tl = ( tl + xl )|0;
720
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
721
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
722
        tl = ( tl + xl )|0;
723
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
724
        hl = gl; hh = gh;
725
        gl = fl; gh = fh;
726
        fl = el; fh = eh;
727
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
728
        dl = cl; dh = ch;
729
        cl = bl; ch = bh;
730
        bl = al; bh = ah;
731
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
732
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
733
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
734
        al = ( al + xl )|0;
735
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
736
737
        // 17
738
        w1l = ( w1l + w10l )|0;
739
        w1h = ( w1h + w10h + ((w1l >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
740
        xl = ( ((w2l >>> 1) | (w2h << 31)) ^ ((w2l >>> 8) | (w2h << 24)) ^ ((w2l >>> 7) | (w2h << 25)) )|0;
741
        w1l = ( w1l + xl)|0;
742
        w1h = ( w1h + ( ((w2h >>> 1) | (w2l << 31)) ^ ((w2h >>> 8) | (w2l << 24)) ^ (w2h >>> 7) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
743
        xl = ( ((w15l >>> 19) | (w15h << 13)) ^ ((w15l << 3) | (w15h >>> 29)) ^ ((w15l >>> 6) | (w15h << 26)) )|0;
744
        w1l = ( w1l + xl)|0;
745
        w1h = ( w1h + ( ((w15h >>> 19) | (w15l << 13)) ^ ((w15h << 3) | (w15l >>> 29)) ^ (w15h >>> 6) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
746
        tl = ( 0x384f25e3 + w1l )|0;
747
        th = ( 0xefbe4786 + w1h + ((tl >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
748
        tl = ( tl + hl )|0;
749
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
750
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
751
        tl = ( tl + xl )|0;
752
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
753
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
754
        tl = ( tl + xl )|0;
755
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
756
        hl = gl; hh = gh;
757
        gl = fl; gh = fh;
758
        fl = el; fh = eh;
759
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
760
        dl = cl; dh = ch;
761
        cl = bl; ch = bh;
762
        bl = al; bh = ah;
763
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
764
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
765
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
766
        al = ( al + xl )|0;
767
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
768
769
        // 18
770
        w2l = ( w2l + w11l )|0;
771
        w2h = ( w2h + w11h + ((w2l >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
772
        xl = ( ((w3l >>> 1) | (w3h << 31)) ^ ((w3l >>> 8) | (w3h << 24)) ^ ((w3l >>> 7) | (w3h << 25)) )|0;
773
        w2l = ( w2l + xl)|0;
774
        w2h = ( w2h + ( ((w3h >>> 1) | (w3l << 31)) ^ ((w3h >>> 8) | (w3l << 24)) ^ (w3h >>> 7) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
775
        xl = ( ((w0l >>> 19) | (w0h << 13)) ^ ((w0l << 3) | (w0h >>> 29)) ^ ((w0l >>> 6) | (w0h << 26)) )|0;
776
        w2l = ( w2l + xl)|0;
777
        w2h = ( w2h + ( ((w0h >>> 19) | (w0l << 13)) ^ ((w0h << 3) | (w0l >>> 29)) ^ (w0h >>> 6) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
778
        tl = ( 0x8b8cd5b5 + w2l )|0;
779
        th = ( 0xfc19dc6 + w2h + ((tl >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
780
        tl = ( tl + hl )|0;
781
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
782
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
783
        tl = ( tl + xl )|0;
784
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
785
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
786
        tl = ( tl + xl )|0;
787
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
788
        hl = gl; hh = gh;
789
        gl = fl; gh = fh;
790
        fl = el; fh = eh;
791
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
792
        dl = cl; dh = ch;
793
        cl = bl; ch = bh;
794
        bl = al; bh = ah;
795
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
796
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
797
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
798
        al = ( al + xl )|0;
799
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
800
801
        // 19
802
        w3l = ( w3l + w12l )|0;
803
        w3h = ( w3h + w12h + ((w3l >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
804
        xl = ( ((w4l >>> 1) | (w4h << 31)) ^ ((w4l >>> 8) | (w4h << 24)) ^ ((w4l >>> 7) | (w4h << 25)) )|0;
805
        w3l = ( w3l + xl)|0;
806
        w3h = ( w3h + ( ((w4h >>> 1) | (w4l << 31)) ^ ((w4h >>> 8) | (w4l << 24)) ^ (w4h >>> 7) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
807
        xl = ( ((w1l >>> 19) | (w1h << 13)) ^ ((w1l << 3) | (w1h >>> 29)) ^ ((w1l >>> 6) | (w1h << 26)) )|0;
808
        w3l = ( w3l + xl)|0;
809
        w3h = ( w3h + ( ((w1h >>> 19) | (w1l << 13)) ^ ((w1h << 3) | (w1l >>> 29)) ^ (w1h >>> 6) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
810
        tl = ( 0x77ac9c65 + w3l )|0;
811
        th = ( 0x240ca1cc + w3h + ((tl >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
812
        tl = ( tl + hl )|0;
813
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
814
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
815
        tl = ( tl + xl )|0;
816
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
817
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
818
        tl = ( tl + xl )|0;
819
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
820
        hl = gl; hh = gh;
821
        gl = fl; gh = fh;
822
        fl = el; fh = eh;
823
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
824
        dl = cl; dh = ch;
825
        cl = bl; ch = bh;
826
        bl = al; bh = ah;
827
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
828
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
829
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
830
        al = ( al + xl )|0;
831
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
832
833
        // 20
834
        w4l = ( w4l + w13l )|0;
835
        w4h = ( w4h + w13h + ((w4l >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
836
        xl = ( ((w5l >>> 1) | (w5h << 31)) ^ ((w5l >>> 8) | (w5h << 24)) ^ ((w5l >>> 7) | (w5h << 25)) )|0;
837
        w4l = ( w4l + xl)|0;
838
        w4h = ( w4h + ( ((w5h >>> 1) | (w5l << 31)) ^ ((w5h >>> 8) | (w5l << 24)) ^ (w5h >>> 7) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
839
        xl = ( ((w2l >>> 19) | (w2h << 13)) ^ ((w2l << 3) | (w2h >>> 29)) ^ ((w2l >>> 6) | (w2h << 26)) )|0;
840
        w4l = ( w4l + xl)|0;
841
        w4h = ( w4h + ( ((w2h >>> 19) | (w2l << 13)) ^ ((w2h << 3) | (w2l >>> 29)) ^ (w2h >>> 6) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
842
        tl = ( 0x592b0275 + w4l )|0;
843
        th = ( 0x2de92c6f + w4h + ((tl >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
844
        tl = ( tl + hl )|0;
845
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
846
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
847
        tl = ( tl + xl )|0;
848
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
849
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
850
        tl = ( tl + xl )|0;
851
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
852
        hl = gl; hh = gh;
853
        gl = fl; gh = fh;
854
        fl = el; fh = eh;
855
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
856
        dl = cl; dh = ch;
857
        cl = bl; ch = bh;
858
        bl = al; bh = ah;
859
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
860
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
861
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
862
        al = ( al + xl )|0;
863
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
864
865
        // 21
866
        w5l = ( w5l + w14l )|0;
867
        w5h = ( w5h + w14h + ((w5l >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
868
        xl = ( ((w6l >>> 1) | (w6h << 31)) ^ ((w6l >>> 8) | (w6h << 24)) ^ ((w6l >>> 7) | (w6h << 25)) )|0;
869
        w5l = ( w5l + xl)|0;
870
        w5h = ( w5h + ( ((w6h >>> 1) | (w6l << 31)) ^ ((w6h >>> 8) | (w6l << 24)) ^ (w6h >>> 7) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
871
        xl = ( ((w3l >>> 19) | (w3h << 13)) ^ ((w3l << 3) | (w3h >>> 29)) ^ ((w3l >>> 6) | (w3h << 26)) )|0;
872
        w5l = ( w5l + xl)|0;
873
        w5h = ( w5h + ( ((w3h >>> 19) | (w3l << 13)) ^ ((w3h << 3) | (w3l >>> 29)) ^ (w3h >>> 6) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
874
        tl = ( 0x6ea6e483 + w5l )|0;
875
        th = ( 0x4a7484aa + w5h + ((tl >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
876
        tl = ( tl + hl )|0;
877
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
878
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
879
        tl = ( tl + xl )|0;
880
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
881
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
882
        tl = ( tl + xl )|0;
883
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
884
        hl = gl; hh = gh;
885
        gl = fl; gh = fh;
886
        fl = el; fh = eh;
887
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
888
        dl = cl; dh = ch;
889
        cl = bl; ch = bh;
890
        bl = al; bh = ah;
891
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
892
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
893
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
894
        al = ( al + xl )|0;
895
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
896
897
        // 22
898
        w6l = ( w6l + w15l )|0;
899
        w6h = ( w6h + w15h + ((w6l >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
900
        xl = ( ((w7l >>> 1) | (w7h << 31)) ^ ((w7l >>> 8) | (w7h << 24)) ^ ((w7l >>> 7) | (w7h << 25)) )|0;
901
        w6l = ( w6l + xl)|0;
902
        w6h = ( w6h + ( ((w7h >>> 1) | (w7l << 31)) ^ ((w7h >>> 8) | (w7l << 24)) ^ (w7h >>> 7) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
903
        xl = ( ((w4l >>> 19) | (w4h << 13)) ^ ((w4l << 3) | (w4h >>> 29)) ^ ((w4l >>> 6) | (w4h << 26)) )|0;
904
        w6l = ( w6l + xl)|0;
905
        w6h = ( w6h + ( ((w4h >>> 19) | (w4l << 13)) ^ ((w4h << 3) | (w4l >>> 29)) ^ (w4h >>> 6) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
906
        tl = ( 0xbd41fbd4 + w6l )|0;
907
        th = ( 0x5cb0a9dc + w6h + ((tl >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
908
        tl = ( tl + hl )|0;
909
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
910
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
911
        tl = ( tl + xl )|0;
912
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
913
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
914
        tl = ( tl + xl )|0;
915
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
916
        hl = gl; hh = gh;
917
        gl = fl; gh = fh;
918
        fl = el; fh = eh;
919
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
920
        dl = cl; dh = ch;
921
        cl = bl; ch = bh;
922
        bl = al; bh = ah;
923
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
924
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
925
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
926
        al = ( al + xl )|0;
927
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
928
929
        // 23
930
        w7l = ( w7l + w0l )|0;
931
        w7h = ( w7h + w0h + ((w7l >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
932
        xl = ( ((w8l >>> 1) | (w8h << 31)) ^ ((w8l >>> 8) | (w8h << 24)) ^ ((w8l >>> 7) | (w8h << 25)) )|0;
933
        w7l = ( w7l + xl)|0;
934
        w7h = ( w7h + ( ((w8h >>> 1) | (w8l << 31)) ^ ((w8h >>> 8) | (w8l << 24)) ^ (w8h >>> 7) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
935
        xl = ( ((w5l >>> 19) | (w5h << 13)) ^ ((w5l << 3) | (w5h >>> 29)) ^ ((w5l >>> 6) | (w5h << 26)) )|0;
936
        w7l = ( w7l + xl)|0;
937
        w7h = ( w7h + ( ((w5h >>> 19) | (w5l << 13)) ^ ((w5h << 3) | (w5l >>> 29)) ^ (w5h >>> 6) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
938
        tl = ( 0x831153b5 + w7l )|0;
939
        th = ( 0x76f988da + w7h + ((tl >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
940
        tl = ( tl + hl )|0;
941
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
942
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
943
        tl = ( tl + xl )|0;
944
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
945
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
946
        tl = ( tl + xl )|0;
947
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
948
        hl = gl; hh = gh;
949
        gl = fl; gh = fh;
950
        fl = el; fh = eh;
951
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
952
        dl = cl; dh = ch;
953
        cl = bl; ch = bh;
954
        bl = al; bh = ah;
955
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
956
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
957
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
958
        al = ( al + xl )|0;
959
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
960
961
        // 24
962
        w8l = ( w8l + w1l )|0;
963
        w8h = ( w8h + w1h + ((w8l >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
964
        xl = ( ((w9l >>> 1) | (w9h << 31)) ^ ((w9l >>> 8) | (w9h << 24)) ^ ((w9l >>> 7) | (w9h << 25)) )|0;
965
        w8l = ( w8l + xl)|0;
966
        w8h = ( w8h + ( ((w9h >>> 1) | (w9l << 31)) ^ ((w9h >>> 8) | (w9l << 24)) ^ (w9h >>> 7) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
967
        xl = ( ((w6l >>> 19) | (w6h << 13)) ^ ((w6l << 3) | (w6h >>> 29)) ^ ((w6l >>> 6) | (w6h << 26)) )|0;
968
        w8l = ( w8l + xl)|0;
969
        w8h = ( w8h + ( ((w6h >>> 19) | (w6l << 13)) ^ ((w6h << 3) | (w6l >>> 29)) ^ (w6h >>> 6) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
970
        tl = ( 0xee66dfab + w8l )|0;
971
        th = ( 0x983e5152 + w8h + ((tl >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
972
        tl = ( tl + hl )|0;
973
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
974
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
975
        tl = ( tl + xl )|0;
976
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
977
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
978
        tl = ( tl + xl )|0;
979
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
980
        hl = gl; hh = gh;
981
        gl = fl; gh = fh;
982
        fl = el; fh = eh;
983
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
984
        dl = cl; dh = ch;
985
        cl = bl; ch = bh;
986
        bl = al; bh = ah;
987
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
988
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
989
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
990
        al = ( al + xl )|0;
991
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
992
993
        // 25
994
        w9l = ( w9l + w2l )|0;
995
        w9h = ( w9h + w2h + ((w9l >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
996
        xl = ( ((w10l >>> 1) | (w10h << 31)) ^ ((w10l >>> 8) | (w10h << 24)) ^ ((w10l >>> 7) | (w10h << 25)) )|0;
997
        w9l = ( w9l + xl)|0;
998
        w9h = ( w9h + ( ((w10h >>> 1) | (w10l << 31)) ^ ((w10h >>> 8) | (w10l << 24)) ^ (w10h >>> 7) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
999
        xl = ( ((w7l >>> 19) | (w7h << 13)) ^ ((w7l << 3) | (w7h >>> 29)) ^ ((w7l >>> 6) | (w7h << 26)) )|0;
1000
        w9l = ( w9l + xl)|0;
1001
        w9h = ( w9h + ( ((w7h >>> 19) | (w7l << 13)) ^ ((w7h << 3) | (w7l >>> 29)) ^ (w7h >>> 6) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1002
        tl = ( 0x2db43210 + w9l )|0;
1003
        th = ( 0xa831c66d + w9h + ((tl >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
1004
        tl = ( tl + hl )|0;
1005
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1006
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1007
        tl = ( tl + xl )|0;
1008
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1009
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1010
        tl = ( tl + xl )|0;
1011
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1012
        hl = gl; hh = gh;
1013
        gl = fl; gh = fh;
1014
        fl = el; fh = eh;
1015
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1016
        dl = cl; dh = ch;
1017
        cl = bl; ch = bh;
1018
        bl = al; bh = ah;
1019
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1020
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1021
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1022
        al = ( al + xl )|0;
1023
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1024
1025
        // 26
1026
        w10l = ( w10l + w3l )|0;
1027
        w10h = ( w10h + w3h + ((w10l >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
1028
        xl = ( ((w11l >>> 1) | (w11h << 31)) ^ ((w11l >>> 8) | (w11h << 24)) ^ ((w11l >>> 7) | (w11h << 25)) )|0;
1029
        w10l = ( w10l + xl)|0;
1030
        w10h = ( w10h + ( ((w11h >>> 1) | (w11l << 31)) ^ ((w11h >>> 8) | (w11l << 24)) ^ (w11h >>> 7) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1031
        xl = ( ((w8l >>> 19) | (w8h << 13)) ^ ((w8l << 3) | (w8h >>> 29)) ^ ((w8l >>> 6) | (w8h << 26)) )|0;
1032
        w10l = ( w10l + xl)|0;
1033
        w10h = ( w10h + ( ((w8h >>> 19) | (w8l << 13)) ^ ((w8h << 3) | (w8l >>> 29)) ^ (w8h >>> 6) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1034
        tl = ( 0x98fb213f + w10l )|0;
1035
        th = ( 0xb00327c8 + w10h + ((tl >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
1036
        tl = ( tl + hl )|0;
1037
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1038
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1039
        tl = ( tl + xl )|0;
1040
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1041
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1042
        tl = ( tl + xl )|0;
1043
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1044
        hl = gl; hh = gh;
1045
        gl = fl; gh = fh;
1046
        fl = el; fh = eh;
1047
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1048
        dl = cl; dh = ch;
1049
        cl = bl; ch = bh;
1050
        bl = al; bh = ah;
1051
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1052
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1053
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1054
        al = ( al + xl )|0;
1055
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1056
1057
        // 27
1058
        w11l = ( w11l + w4l )|0;
1059
        w11h = ( w11h + w4h + ((w11l >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
1060
        xl = ( ((w12l >>> 1) | (w12h << 31)) ^ ((w12l >>> 8) | (w12h << 24)) ^ ((w12l >>> 7) | (w12h << 25)) )|0;
1061
        w11l = ( w11l + xl)|0;
1062
        w11h = ( w11h + ( ((w12h >>> 1) | (w12l << 31)) ^ ((w12h >>> 8) | (w12l << 24)) ^ (w12h >>> 7) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1063
        xl = ( ((w9l >>> 19) | (w9h << 13)) ^ ((w9l << 3) | (w9h >>> 29)) ^ ((w9l >>> 6) | (w9h << 26)) )|0;
1064
        w11l = ( w11l + xl)|0;
1065
        w11h = ( w11h + ( ((w9h >>> 19) | (w9l << 13)) ^ ((w9h << 3) | (w9l >>> 29)) ^ (w9h >>> 6) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1066
        tl = ( 0xbeef0ee4 + w11l )|0;
1067
        th = ( 0xbf597fc7 + w11h + ((tl >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
1068
        tl = ( tl + hl )|0;
1069
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1070
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1071
        tl = ( tl + xl )|0;
1072
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1073
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1074
        tl = ( tl + xl )|0;
1075
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1076
        hl = gl; hh = gh;
1077
        gl = fl; gh = fh;
1078
        fl = el; fh = eh;
1079
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1080
        dl = cl; dh = ch;
1081
        cl = bl; ch = bh;
1082
        bl = al; bh = ah;
1083
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1084
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1085
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1086
        al = ( al + xl )|0;
1087
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1088
1089
        // 28
1090
        w12l = ( w12l + w5l )|0;
1091
        w12h = ( w12h + w5h + ((w12l >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
1092
        xl = ( ((w13l >>> 1) | (w13h << 31)) ^ ((w13l >>> 8) | (w13h << 24)) ^ ((w13l >>> 7) | (w13h << 25)) )|0;
1093
        w12l = ( w12l + xl)|0;
1094
        w12h = ( w12h + ( ((w13h >>> 1) | (w13l << 31)) ^ ((w13h >>> 8) | (w13l << 24)) ^ (w13h >>> 7) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1095
        xl = ( ((w10l >>> 19) | (w10h << 13)) ^ ((w10l << 3) | (w10h >>> 29)) ^ ((w10l >>> 6) | (w10h << 26)) )|0;
1096
        w12l = ( w12l + xl)|0;
1097
        w12h = ( w12h + ( ((w10h >>> 19) | (w10l << 13)) ^ ((w10h << 3) | (w10l >>> 29)) ^ (w10h >>> 6) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1098
        tl = ( 0x3da88fc2 + w12l )|0;
1099
        th = ( 0xc6e00bf3 + w12h + ((tl >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
1100
        tl = ( tl + hl )|0;
1101
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1102
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1103
        tl = ( tl + xl )|0;
1104
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1105
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1106
        tl = ( tl + xl )|0;
1107
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1108
        hl = gl; hh = gh;
1109
        gl = fl; gh = fh;
1110
        fl = el; fh = eh;
1111
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1112
        dl = cl; dh = ch;
1113
        cl = bl; ch = bh;
1114
        bl = al; bh = ah;
1115
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1116
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1117
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1118
        al = ( al + xl )|0;
1119
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1120
1121
        // 29
1122
        w13l = ( w13l + w6l )|0;
1123
        w13h = ( w13h + w6h + ((w13l >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
1124
        xl = ( ((w14l >>> 1) | (w14h << 31)) ^ ((w14l >>> 8) | (w14h << 24)) ^ ((w14l >>> 7) | (w14h << 25)) )|0;
1125
        w13l = ( w13l + xl)|0;
1126
        w13h = ( w13h + ( ((w14h >>> 1) | (w14l << 31)) ^ ((w14h >>> 8) | (w14l << 24)) ^ (w14h >>> 7) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1127
        xl = ( ((w11l >>> 19) | (w11h << 13)) ^ ((w11l << 3) | (w11h >>> 29)) ^ ((w11l >>> 6) | (w11h << 26)) )|0;
1128
        w13l = ( w13l + xl)|0;
1129
        w13h = ( w13h + ( ((w11h >>> 19) | (w11l << 13)) ^ ((w11h << 3) | (w11l >>> 29)) ^ (w11h >>> 6) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1130
        tl = ( 0x930aa725 + w13l )|0;
1131
        th = ( 0xd5a79147 + w13h + ((tl >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
1132
        tl = ( tl + hl )|0;
1133
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1134
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1135
        tl = ( tl + xl )|0;
1136
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1137
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1138
        tl = ( tl + xl )|0;
1139
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1140
        hl = gl; hh = gh;
1141
        gl = fl; gh = fh;
1142
        fl = el; fh = eh;
1143
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1144
        dl = cl; dh = ch;
1145
        cl = bl; ch = bh;
1146
        bl = al; bh = ah;
1147
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1148
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1149
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1150
        al = ( al + xl )|0;
1151
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1152
1153
        // 30
1154
        w14l = ( w14l + w7l )|0;
1155
        w14h = ( w14h + w7h + ((w14l >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
1156
        xl = ( ((w15l >>> 1) | (w15h << 31)) ^ ((w15l >>> 8) | (w15h << 24)) ^ ((w15l >>> 7) | (w15h << 25)) )|0;
1157
        w14l = ( w14l + xl)|0;
1158
        w14h = ( w14h + ( ((w15h >>> 1) | (w15l << 31)) ^ ((w15h >>> 8) | (w15l << 24)) ^ (w15h >>> 7) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1159
        xl = ( ((w12l >>> 19) | (w12h << 13)) ^ ((w12l << 3) | (w12h >>> 29)) ^ ((w12l >>> 6) | (w12h << 26)) )|0;
1160
        w14l = ( w14l + xl)|0;
1161
        w14h = ( w14h + ( ((w12h >>> 19) | (w12l << 13)) ^ ((w12h << 3) | (w12l >>> 29)) ^ (w12h >>> 6) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1162
        tl = ( 0xe003826f + w14l )|0;
1163
        th = ( 0x6ca6351 + w14h + ((tl >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
1164
        tl = ( tl + hl )|0;
1165
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1166
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1167
        tl = ( tl + xl )|0;
1168
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1169
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1170
        tl = ( tl + xl )|0;
1171
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1172
        hl = gl; hh = gh;
1173
        gl = fl; gh = fh;
1174
        fl = el; fh = eh;
1175
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1176
        dl = cl; dh = ch;
1177
        cl = bl; ch = bh;
1178
        bl = al; bh = ah;
1179
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1180
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1181
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1182
        al = ( al + xl )|0;
1183
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1184
1185
        // 31
1186
        w15l = ( w15l + w8l )|0;
1187
        w15h = ( w15h + w8h + ((w15l >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
1188
        xl = ( ((w0l >>> 1) | (w0h << 31)) ^ ((w0l >>> 8) | (w0h << 24)) ^ ((w0l >>> 7) | (w0h << 25)) )|0;
1189
        w15l = ( w15l + xl)|0;
1190
        w15h = ( w15h + ( ((w0h >>> 1) | (w0l << 31)) ^ ((w0h >>> 8) | (w0l << 24)) ^ (w0h >>> 7) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1191
        xl = ( ((w13l >>> 19) | (w13h << 13)) ^ ((w13l << 3) | (w13h >>> 29)) ^ ((w13l >>> 6) | (w13h << 26)) )|0;
1192
        w15l = ( w15l + xl)|0;
1193
        w15h = ( w15h + ( ((w13h >>> 19) | (w13l << 13)) ^ ((w13h << 3) | (w13l >>> 29)) ^ (w13h >>> 6) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1194
        tl = ( 0xa0e6e70 + w15l )|0;
1195
        th = ( 0x14292967 + w15h + ((tl >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
1196
        tl = ( tl + hl )|0;
1197
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1198
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1199
        tl = ( tl + xl )|0;
1200
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1201
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1202
        tl = ( tl + xl )|0;
1203
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1204
        hl = gl; hh = gh;
1205
        gl = fl; gh = fh;
1206
        fl = el; fh = eh;
1207
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1208
        dl = cl; dh = ch;
1209
        cl = bl; ch = bh;
1210
        bl = al; bh = ah;
1211
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1212
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1213
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1214
        al = ( al + xl )|0;
1215
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1216
1217
        // 32
1218
        w0l = ( w0l + w9l )|0;
1219
        w0h = ( w0h + w9h + ((w0l >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
1220
        xl = ( ((w1l >>> 1) | (w1h << 31)) ^ ((w1l >>> 8) | (w1h << 24)) ^ ((w1l >>> 7) | (w1h << 25)) )|0;
1221
        w0l = ( w0l + xl)|0;
1222
        w0h = ( w0h + ( ((w1h >>> 1) | (w1l << 31)) ^ ((w1h >>> 8) | (w1l << 24)) ^ (w1h >>> 7) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1223
        xl = ( ((w14l >>> 19) | (w14h << 13)) ^ ((w14l << 3) | (w14h >>> 29)) ^ ((w14l >>> 6) | (w14h << 26)) )|0;
1224
        w0l = ( w0l + xl)|0;
1225
        w0h = ( w0h + ( ((w14h >>> 19) | (w14l << 13)) ^ ((w14h << 3) | (w14l >>> 29)) ^ (w14h >>> 6) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1226
        tl = ( 0x46d22ffc + w0l )|0;
1227
        th = ( 0x27b70a85 + w0h + ((tl >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
1228
        tl = ( tl + hl )|0;
1229
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1230
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1231
        tl = ( tl + xl )|0;
1232
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1233
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1234
        tl = ( tl + xl )|0;
1235
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1236
        hl = gl; hh = gh;
1237
        gl = fl; gh = fh;
1238
        fl = el; fh = eh;
1239
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1240
        dl = cl; dh = ch;
1241
        cl = bl; ch = bh;
1242
        bl = al; bh = ah;
1243
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1244
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1245
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1246
        al = ( al + xl )|0;
1247
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1248
1249
        // 33
1250
        w1l = ( w1l + w10l )|0;
1251
        w1h = ( w1h + w10h + ((w1l >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
1252
        xl = ( ((w2l >>> 1) | (w2h << 31)) ^ ((w2l >>> 8) | (w2h << 24)) ^ ((w2l >>> 7) | (w2h << 25)) )|0;
1253
        w1l = ( w1l + xl)|0;
1254
        w1h = ( w1h + ( ((w2h >>> 1) | (w2l << 31)) ^ ((w2h >>> 8) | (w2l << 24)) ^ (w2h >>> 7) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1255
        xl = ( ((w15l >>> 19) | (w15h << 13)) ^ ((w15l << 3) | (w15h >>> 29)) ^ ((w15l >>> 6) | (w15h << 26)) )|0;
1256
        w1l = ( w1l + xl)|0;
1257
        w1h = ( w1h + ( ((w15h >>> 19) | (w15l << 13)) ^ ((w15h << 3) | (w15l >>> 29)) ^ (w15h >>> 6) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1258
        tl = ( 0x5c26c926 + w1l )|0;
1259
        th = ( 0x2e1b2138 + w1h + ((tl >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
1260
        tl = ( tl + hl )|0;
1261
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1262
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1263
        tl = ( tl + xl )|0;
1264
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1265
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1266
        tl = ( tl + xl )|0;
1267
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1268
        hl = gl; hh = gh;
1269
        gl = fl; gh = fh;
1270
        fl = el; fh = eh;
1271
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1272
        dl = cl; dh = ch;
1273
        cl = bl; ch = bh;
1274
        bl = al; bh = ah;
1275
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1276
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1277
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1278
        al = ( al + xl )|0;
1279
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1280
1281
        // 34
1282
        w2l = ( w2l + w11l )|0;
1283
        w2h = ( w2h + w11h + ((w2l >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
1284
        xl = ( ((w3l >>> 1) | (w3h << 31)) ^ ((w3l >>> 8) | (w3h << 24)) ^ ((w3l >>> 7) | (w3h << 25)) )|0;
1285
        w2l = ( w2l + xl)|0;
1286
        w2h = ( w2h + ( ((w3h >>> 1) | (w3l << 31)) ^ ((w3h >>> 8) | (w3l << 24)) ^ (w3h >>> 7) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1287
        xl = ( ((w0l >>> 19) | (w0h << 13)) ^ ((w0l << 3) | (w0h >>> 29)) ^ ((w0l >>> 6) | (w0h << 26)) )|0;
1288
        w2l = ( w2l + xl)|0;
1289
        w2h = ( w2h + ( ((w0h >>> 19) | (w0l << 13)) ^ ((w0h << 3) | (w0l >>> 29)) ^ (w0h >>> 6) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1290
        tl = ( 0x5ac42aed + w2l )|0;
1291
        th = ( 0x4d2c6dfc + w2h + ((tl >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
1292
        tl = ( tl + hl )|0;
1293
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1294
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1295
        tl = ( tl + xl )|0;
1296
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1297
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1298
        tl = ( tl + xl )|0;
1299
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1300
        hl = gl; hh = gh;
1301
        gl = fl; gh = fh;
1302
        fl = el; fh = eh;
1303
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1304
        dl = cl; dh = ch;
1305
        cl = bl; ch = bh;
1306
        bl = al; bh = ah;
1307
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1308
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1309
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1310
        al = ( al + xl )|0;
1311
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1312
1313
        // 35
1314
        w3l = ( w3l + w12l )|0;
1315
        w3h = ( w3h + w12h + ((w3l >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
1316
        xl = ( ((w4l >>> 1) | (w4h << 31)) ^ ((w4l >>> 8) | (w4h << 24)) ^ ((w4l >>> 7) | (w4h << 25)) )|0;
1317
        w3l = ( w3l + xl)|0;
1318
        w3h = ( w3h + ( ((w4h >>> 1) | (w4l << 31)) ^ ((w4h >>> 8) | (w4l << 24)) ^ (w4h >>> 7) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1319
        xl = ( ((w1l >>> 19) | (w1h << 13)) ^ ((w1l << 3) | (w1h >>> 29)) ^ ((w1l >>> 6) | (w1h << 26)) )|0;
1320
        w3l = ( w3l + xl)|0;
1321
        w3h = ( w3h + ( ((w1h >>> 19) | (w1l << 13)) ^ ((w1h << 3) | (w1l >>> 29)) ^ (w1h >>> 6) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1322
        tl = ( 0x9d95b3df + w3l )|0;
1323
        th = ( 0x53380d13 + w3h + ((tl >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
1324
        tl = ( tl + hl )|0;
1325
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1326
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1327
        tl = ( tl + xl )|0;
1328
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1329
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1330
        tl = ( tl + xl )|0;
1331
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1332
        hl = gl; hh = gh;
1333
        gl = fl; gh = fh;
1334
        fl = el; fh = eh;
1335
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1336
        dl = cl; dh = ch;
1337
        cl = bl; ch = bh;
1338
        bl = al; bh = ah;
1339
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1340
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1341
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1342
        al = ( al + xl )|0;
1343
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1344
1345
        // 36
1346
        w4l = ( w4l + w13l )|0;
1347
        w4h = ( w4h + w13h + ((w4l >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
1348
        xl = ( ((w5l >>> 1) | (w5h << 31)) ^ ((w5l >>> 8) | (w5h << 24)) ^ ((w5l >>> 7) | (w5h << 25)) )|0;
1349
        w4l = ( w4l + xl)|0;
1350
        w4h = ( w4h + ( ((w5h >>> 1) | (w5l << 31)) ^ ((w5h >>> 8) | (w5l << 24)) ^ (w5h >>> 7) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1351
        xl = ( ((w2l >>> 19) | (w2h << 13)) ^ ((w2l << 3) | (w2h >>> 29)) ^ ((w2l >>> 6) | (w2h << 26)) )|0;
1352
        w4l = ( w4l + xl)|0;
1353
        w4h = ( w4h + ( ((w2h >>> 19) | (w2l << 13)) ^ ((w2h << 3) | (w2l >>> 29)) ^ (w2h >>> 6) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1354
        tl = ( 0x8baf63de + w4l )|0;
1355
        th = ( 0x650a7354 + w4h + ((tl >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
1356
        tl = ( tl + hl )|0;
1357
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1358
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1359
        tl = ( tl + xl )|0;
1360
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1361
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1362
        tl = ( tl + xl )|0;
1363
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1364
        hl = gl; hh = gh;
1365
        gl = fl; gh = fh;
1366
        fl = el; fh = eh;
1367
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1368
        dl = cl; dh = ch;
1369
        cl = bl; ch = bh;
1370
        bl = al; bh = ah;
1371
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1372
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1373
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1374
        al = ( al + xl )|0;
1375
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1376
1377
        // 37
1378
        w5l = ( w5l + w14l )|0;
1379
        w5h = ( w5h + w14h + ((w5l >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
1380
        xl = ( ((w6l >>> 1) | (w6h << 31)) ^ ((w6l >>> 8) | (w6h << 24)) ^ ((w6l >>> 7) | (w6h << 25)) )|0;
1381
        w5l = ( w5l + xl)|0;
1382
        w5h = ( w5h + ( ((w6h >>> 1) | (w6l << 31)) ^ ((w6h >>> 8) | (w6l << 24)) ^ (w6h >>> 7) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1383
        xl = ( ((w3l >>> 19) | (w3h << 13)) ^ ((w3l << 3) | (w3h >>> 29)) ^ ((w3l >>> 6) | (w3h << 26)) )|0;
1384
        w5l = ( w5l + xl)|0;
1385
        w5h = ( w5h + ( ((w3h >>> 19) | (w3l << 13)) ^ ((w3h << 3) | (w3l >>> 29)) ^ (w3h >>> 6) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1386
        tl = ( 0x3c77b2a8 + w5l )|0;
1387
        th = ( 0x766a0abb + w5h + ((tl >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
1388
        tl = ( tl + hl )|0;
1389
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1390
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1391
        tl = ( tl + xl )|0;
1392
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1393
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1394
        tl = ( tl + xl )|0;
1395
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1396
        hl = gl; hh = gh;
1397
        gl = fl; gh = fh;
1398
        fl = el; fh = eh;
1399
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1400
        dl = cl; dh = ch;
1401
        cl = bl; ch = bh;
1402
        bl = al; bh = ah;
1403
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1404
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1405
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1406
        al = ( al + xl )|0;
1407
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1408
1409
        // 38
1410
        w6l = ( w6l + w15l )|0;
1411
        w6h = ( w6h + w15h + ((w6l >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
1412
        xl = ( ((w7l >>> 1) | (w7h << 31)) ^ ((w7l >>> 8) | (w7h << 24)) ^ ((w7l >>> 7) | (w7h << 25)) )|0;
1413
        w6l = ( w6l + xl)|0;
1414
        w6h = ( w6h + ( ((w7h >>> 1) | (w7l << 31)) ^ ((w7h >>> 8) | (w7l << 24)) ^ (w7h >>> 7) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1415
        xl = ( ((w4l >>> 19) | (w4h << 13)) ^ ((w4l << 3) | (w4h >>> 29)) ^ ((w4l >>> 6) | (w4h << 26)) )|0;
1416
        w6l = ( w6l + xl)|0;
1417
        w6h = ( w6h + ( ((w4h >>> 19) | (w4l << 13)) ^ ((w4h << 3) | (w4l >>> 29)) ^ (w4h >>> 6) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1418
        tl = ( 0x47edaee6 + w6l )|0;
1419
        th = ( 0x81c2c92e + w6h + ((tl >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
1420
        tl = ( tl + hl )|0;
1421
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1422
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1423
        tl = ( tl + xl )|0;
1424
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1425
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1426
        tl = ( tl + xl )|0;
1427
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1428
        hl = gl; hh = gh;
1429
        gl = fl; gh = fh;
1430
        fl = el; fh = eh;
1431
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1432
        dl = cl; dh = ch;
1433
        cl = bl; ch = bh;
1434
        bl = al; bh = ah;
1435
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1436
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1437
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1438
        al = ( al + xl )|0;
1439
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1440
1441
        // 39
1442
        w7l = ( w7l + w0l )|0;
1443
        w7h = ( w7h + w0h + ((w7l >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
1444
        xl = ( ((w8l >>> 1) | (w8h << 31)) ^ ((w8l >>> 8) | (w8h << 24)) ^ ((w8l >>> 7) | (w8h << 25)) )|0;
1445
        w7l = ( w7l + xl)|0;
1446
        w7h = ( w7h + ( ((w8h >>> 1) | (w8l << 31)) ^ ((w8h >>> 8) | (w8l << 24)) ^ (w8h >>> 7) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1447
        xl = ( ((w5l >>> 19) | (w5h << 13)) ^ ((w5l << 3) | (w5h >>> 29)) ^ ((w5l >>> 6) | (w5h << 26)) )|0;
1448
        w7l = ( w7l + xl)|0;
1449
        w7h = ( w7h + ( ((w5h >>> 19) | (w5l << 13)) ^ ((w5h << 3) | (w5l >>> 29)) ^ (w5h >>> 6) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1450
        tl = ( 0x1482353b + w7l )|0;
1451
        th = ( 0x92722c85 + w7h + ((tl >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
1452
        tl = ( tl + hl )|0;
1453
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1454
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1455
        tl = ( tl + xl )|0;
1456
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1457
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1458
        tl = ( tl + xl )|0;
1459
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1460
        hl = gl; hh = gh;
1461
        gl = fl; gh = fh;
1462
        fl = el; fh = eh;
1463
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1464
        dl = cl; dh = ch;
1465
        cl = bl; ch = bh;
1466
        bl = al; bh = ah;
1467
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1468
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1469
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1470
        al = ( al + xl )|0;
1471
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1472
1473
        // 40
1474
        w8l = ( w8l + w1l )|0;
1475
        w8h = ( w8h + w1h + ((w8l >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
1476
        xl = ( ((w9l >>> 1) | (w9h << 31)) ^ ((w9l >>> 8) | (w9h << 24)) ^ ((w9l >>> 7) | (w9h << 25)) )|0;
1477
        w8l = ( w8l + xl)|0;
1478
        w8h = ( w8h + ( ((w9h >>> 1) | (w9l << 31)) ^ ((w9h >>> 8) | (w9l << 24)) ^ (w9h >>> 7) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1479
        xl = ( ((w6l >>> 19) | (w6h << 13)) ^ ((w6l << 3) | (w6h >>> 29)) ^ ((w6l >>> 6) | (w6h << 26)) )|0;
1480
        w8l = ( w8l + xl)|0;
1481
        w8h = ( w8h + ( ((w6h >>> 19) | (w6l << 13)) ^ ((w6h << 3) | (w6l >>> 29)) ^ (w6h >>> 6) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1482
        tl = ( 0x4cf10364 + w8l )|0;
1483
        th = ( 0xa2bfe8a1 + w8h + ((tl >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
1484
        tl = ( tl + hl )|0;
1485
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1486
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1487
        tl = ( tl + xl )|0;
1488
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1489
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1490
        tl = ( tl + xl )|0;
1491
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1492
        hl = gl; hh = gh;
1493
        gl = fl; gh = fh;
1494
        fl = el; fh = eh;
1495
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1496
        dl = cl; dh = ch;
1497
        cl = bl; ch = bh;
1498
        bl = al; bh = ah;
1499
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1500
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1501
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1502
        al = ( al + xl )|0;
1503
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1504
1505
        // 41
1506
        w9l = ( w9l + w2l )|0;
1507
        w9h = ( w9h + w2h + ((w9l >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
1508
        xl = ( ((w10l >>> 1) | (w10h << 31)) ^ ((w10l >>> 8) | (w10h << 24)) ^ ((w10l >>> 7) | (w10h << 25)) )|0;
1509
        w9l = ( w9l + xl)|0;
1510
        w9h = ( w9h + ( ((w10h >>> 1) | (w10l << 31)) ^ ((w10h >>> 8) | (w10l << 24)) ^ (w10h >>> 7) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1511
        xl = ( ((w7l >>> 19) | (w7h << 13)) ^ ((w7l << 3) | (w7h >>> 29)) ^ ((w7l >>> 6) | (w7h << 26)) )|0;
1512
        w9l = ( w9l + xl)|0;
1513
        w9h = ( w9h + ( ((w7h >>> 19) | (w7l << 13)) ^ ((w7h << 3) | (w7l >>> 29)) ^ (w7h >>> 6) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1514
        tl = ( 0xbc423001 + w9l )|0;
1515
        th = ( 0xa81a664b + w9h + ((tl >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
1516
        tl = ( tl + hl )|0;
1517
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1518
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1519
        tl = ( tl + xl )|0;
1520
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1521
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1522
        tl = ( tl + xl )|0;
1523
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1524
        hl = gl; hh = gh;
1525
        gl = fl; gh = fh;
1526
        fl = el; fh = eh;
1527
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1528
        dl = cl; dh = ch;
1529
        cl = bl; ch = bh;
1530
        bl = al; bh = ah;
1531
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1532
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1533
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1534
        al = ( al + xl )|0;
1535
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1536
1537
        // 42
1538
        w10l = ( w10l + w3l )|0;
1539
        w10h = ( w10h + w3h + ((w10l >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
1540
        xl = ( ((w11l >>> 1) | (w11h << 31)) ^ ((w11l >>> 8) | (w11h << 24)) ^ ((w11l >>> 7) | (w11h << 25)) )|0;
1541
        w10l = ( w10l + xl)|0;
1542
        w10h = ( w10h + ( ((w11h >>> 1) | (w11l << 31)) ^ ((w11h >>> 8) | (w11l << 24)) ^ (w11h >>> 7) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1543
        xl = ( ((w8l >>> 19) | (w8h << 13)) ^ ((w8l << 3) | (w8h >>> 29)) ^ ((w8l >>> 6) | (w8h << 26)) )|0;
1544
        w10l = ( w10l + xl)|0;
1545
        w10h = ( w10h + ( ((w8h >>> 19) | (w8l << 13)) ^ ((w8h << 3) | (w8l >>> 29)) ^ (w8h >>> 6) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1546
        tl = ( 0xd0f89791 + w10l )|0;
1547
        th = ( 0xc24b8b70 + w10h + ((tl >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
1548
        tl = ( tl + hl )|0;
1549
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1550
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1551
        tl = ( tl + xl )|0;
1552
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1553
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1554
        tl = ( tl + xl )|0;
1555
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1556
        hl = gl; hh = gh;
1557
        gl = fl; gh = fh;
1558
        fl = el; fh = eh;
1559
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1560
        dl = cl; dh = ch;
1561
        cl = bl; ch = bh;
1562
        bl = al; bh = ah;
1563
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1564
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1565
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1566
        al = ( al + xl )|0;
1567
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1568
1569
        // 43
1570
        w11l = ( w11l + w4l )|0;
1571
        w11h = ( w11h + w4h + ((w11l >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
1572
        xl = ( ((w12l >>> 1) | (w12h << 31)) ^ ((w12l >>> 8) | (w12h << 24)) ^ ((w12l >>> 7) | (w12h << 25)) )|0;
1573
        w11l = ( w11l + xl)|0;
1574
        w11h = ( w11h + ( ((w12h >>> 1) | (w12l << 31)) ^ ((w12h >>> 8) | (w12l << 24)) ^ (w12h >>> 7) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1575
        xl = ( ((w9l >>> 19) | (w9h << 13)) ^ ((w9l << 3) | (w9h >>> 29)) ^ ((w9l >>> 6) | (w9h << 26)) )|0;
1576
        w11l = ( w11l + xl)|0;
1577
        w11h = ( w11h + ( ((w9h >>> 19) | (w9l << 13)) ^ ((w9h << 3) | (w9l >>> 29)) ^ (w9h >>> 6) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1578
        tl = ( 0x654be30 + w11l )|0;
1579
        th = ( 0xc76c51a3 + w11h + ((tl >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
1580
        tl = ( tl + hl )|0;
1581
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1582
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1583
        tl = ( tl + xl )|0;
1584
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1585
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1586
        tl = ( tl + xl )|0;
1587
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1588
        hl = gl; hh = gh;
1589
        gl = fl; gh = fh;
1590
        fl = el; fh = eh;
1591
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1592
        dl = cl; dh = ch;
1593
        cl = bl; ch = bh;
1594
        bl = al; bh = ah;
1595
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1596
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1597
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1598
        al = ( al + xl )|0;
1599
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1600
1601
        // 44
1602
        w12l = ( w12l + w5l )|0;
1603
        w12h = ( w12h + w5h + ((w12l >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
1604
        xl = ( ((w13l >>> 1) | (w13h << 31)) ^ ((w13l >>> 8) | (w13h << 24)) ^ ((w13l >>> 7) | (w13h << 25)) )|0;
1605
        w12l = ( w12l + xl)|0;
1606
        w12h = ( w12h + ( ((w13h >>> 1) | (w13l << 31)) ^ ((w13h >>> 8) | (w13l << 24)) ^ (w13h >>> 7) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1607
        xl = ( ((w10l >>> 19) | (w10h << 13)) ^ ((w10l << 3) | (w10h >>> 29)) ^ ((w10l >>> 6) | (w10h << 26)) )|0;
1608
        w12l = ( w12l + xl)|0;
1609
        w12h = ( w12h + ( ((w10h >>> 19) | (w10l << 13)) ^ ((w10h << 3) | (w10l >>> 29)) ^ (w10h >>> 6) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1610
        tl = ( 0xd6ef5218 + w12l )|0;
1611
        th = ( 0xd192e819 + w12h + ((tl >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
1612
        tl = ( tl + hl )|0;
1613
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1614
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1615
        tl = ( tl + xl )|0;
1616
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1617
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1618
        tl = ( tl + xl )|0;
1619
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1620
        hl = gl; hh = gh;
1621
        gl = fl; gh = fh;
1622
        fl = el; fh = eh;
1623
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1624
        dl = cl; dh = ch;
1625
        cl = bl; ch = bh;
1626
        bl = al; bh = ah;
1627
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1628
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1629
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1630
        al = ( al + xl )|0;
1631
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1632
1633
        // 45
1634
        w13l = ( w13l + w6l )|0;
1635
        w13h = ( w13h + w6h + ((w13l >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
1636
        xl = ( ((w14l >>> 1) | (w14h << 31)) ^ ((w14l >>> 8) | (w14h << 24)) ^ ((w14l >>> 7) | (w14h << 25)) )|0;
1637
        w13l = ( w13l + xl)|0;
1638
        w13h = ( w13h + ( ((w14h >>> 1) | (w14l << 31)) ^ ((w14h >>> 8) | (w14l << 24)) ^ (w14h >>> 7) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1639
        xl = ( ((w11l >>> 19) | (w11h << 13)) ^ ((w11l << 3) | (w11h >>> 29)) ^ ((w11l >>> 6) | (w11h << 26)) )|0;
1640
        w13l = ( w13l + xl)|0;
1641
        w13h = ( w13h + ( ((w11h >>> 19) | (w11l << 13)) ^ ((w11h << 3) | (w11l >>> 29)) ^ (w11h >>> 6) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1642
        tl = ( 0x5565a910 + w13l )|0;
1643
        th = ( 0xd6990624 + w13h + ((tl >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
1644
        tl = ( tl + hl )|0;
1645
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1646
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1647
        tl = ( tl + xl )|0;
1648
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1649
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1650
        tl = ( tl + xl )|0;
1651
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1652
        hl = gl; hh = gh;
1653
        gl = fl; gh = fh;
1654
        fl = el; fh = eh;
1655
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1656
        dl = cl; dh = ch;
1657
        cl = bl; ch = bh;
1658
        bl = al; bh = ah;
1659
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1660
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1661
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1662
        al = ( al + xl )|0;
1663
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1664
1665
        // 46
1666
        w14l = ( w14l + w7l )|0;
1667
        w14h = ( w14h + w7h + ((w14l >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
1668
        xl = ( ((w15l >>> 1) | (w15h << 31)) ^ ((w15l >>> 8) | (w15h << 24)) ^ ((w15l >>> 7) | (w15h << 25)) )|0;
1669
        w14l = ( w14l + xl)|0;
1670
        w14h = ( w14h + ( ((w15h >>> 1) | (w15l << 31)) ^ ((w15h >>> 8) | (w15l << 24)) ^ (w15h >>> 7) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1671
        xl = ( ((w12l >>> 19) | (w12h << 13)) ^ ((w12l << 3) | (w12h >>> 29)) ^ ((w12l >>> 6) | (w12h << 26)) )|0;
1672
        w14l = ( w14l + xl)|0;
1673
        w14h = ( w14h + ( ((w12h >>> 19) | (w12l << 13)) ^ ((w12h << 3) | (w12l >>> 29)) ^ (w12h >>> 6) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1674
        tl = ( 0x5771202a + w14l )|0;
1675
        th = ( 0xf40e3585 + w14h + ((tl >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
1676
        tl = ( tl + hl )|0;
1677
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1678
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1679
        tl = ( tl + xl )|0;
1680
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1681
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1682
        tl = ( tl + xl )|0;
1683
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1684
        hl = gl; hh = gh;
1685
        gl = fl; gh = fh;
1686
        fl = el; fh = eh;
1687
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1688
        dl = cl; dh = ch;
1689
        cl = bl; ch = bh;
1690
        bl = al; bh = ah;
1691
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1692
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1693
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1694
        al = ( al + xl )|0;
1695
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1696
1697
        // 47
1698
        w15l = ( w15l + w8l )|0;
1699
        w15h = ( w15h + w8h + ((w15l >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
1700
        xl = ( ((w0l >>> 1) | (w0h << 31)) ^ ((w0l >>> 8) | (w0h << 24)) ^ ((w0l >>> 7) | (w0h << 25)) )|0;
1701
        w15l = ( w15l + xl)|0;
1702
        w15h = ( w15h + ( ((w0h >>> 1) | (w0l << 31)) ^ ((w0h >>> 8) | (w0l << 24)) ^ (w0h >>> 7) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1703
        xl = ( ((w13l >>> 19) | (w13h << 13)) ^ ((w13l << 3) | (w13h >>> 29)) ^ ((w13l >>> 6) | (w13h << 26)) )|0;
1704
        w15l = ( w15l + xl)|0;
1705
        w15h = ( w15h + ( ((w13h >>> 19) | (w13l << 13)) ^ ((w13h << 3) | (w13l >>> 29)) ^ (w13h >>> 6) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1706
        tl = ( 0x32bbd1b8 + w15l )|0;
1707
        th = ( 0x106aa070 + w15h + ((tl >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
1708
        tl = ( tl + hl )|0;
1709
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1710
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1711
        tl = ( tl + xl )|0;
1712
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1713
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1714
        tl = ( tl + xl )|0;
1715
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1716
        hl = gl; hh = gh;
1717
        gl = fl; gh = fh;
1718
        fl = el; fh = eh;
1719
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1720
        dl = cl; dh = ch;
1721
        cl = bl; ch = bh;
1722
        bl = al; bh = ah;
1723
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1724
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1725
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1726
        al = ( al + xl )|0;
1727
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1728
1729
        // 48
1730
        w0l = ( w0l + w9l )|0;
1731
        w0h = ( w0h + w9h + ((w0l >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
1732
        xl = ( ((w1l >>> 1) | (w1h << 31)) ^ ((w1l >>> 8) | (w1h << 24)) ^ ((w1l >>> 7) | (w1h << 25)) )|0;
1733
        w0l = ( w0l + xl)|0;
1734
        w0h = ( w0h + ( ((w1h >>> 1) | (w1l << 31)) ^ ((w1h >>> 8) | (w1l << 24)) ^ (w1h >>> 7) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1735
        xl = ( ((w14l >>> 19) | (w14h << 13)) ^ ((w14l << 3) | (w14h >>> 29)) ^ ((w14l >>> 6) | (w14h << 26)) )|0;
1736
        w0l = ( w0l + xl)|0;
1737
        w0h = ( w0h + ( ((w14h >>> 19) | (w14l << 13)) ^ ((w14h << 3) | (w14l >>> 29)) ^ (w14h >>> 6) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1738
        tl = ( 0xb8d2d0c8 + w0l )|0;
1739
        th = ( 0x19a4c116 + w0h + ((tl >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
1740
        tl = ( tl + hl )|0;
1741
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1742
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1743
        tl = ( tl + xl )|0;
1744
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1745
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1746
        tl = ( tl + xl )|0;
1747
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1748
        hl = gl; hh = gh;
1749
        gl = fl; gh = fh;
1750
        fl = el; fh = eh;
1751
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1752
        dl = cl; dh = ch;
1753
        cl = bl; ch = bh;
1754
        bl = al; bh = ah;
1755
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1756
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1757
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1758
        al = ( al + xl )|0;
1759
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1760
1761
        // 49
1762
        w1l = ( w1l + w10l )|0;
1763
        w1h = ( w1h + w10h + ((w1l >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
1764
        xl = ( ((w2l >>> 1) | (w2h << 31)) ^ ((w2l >>> 8) | (w2h << 24)) ^ ((w2l >>> 7) | (w2h << 25)) )|0;
1765
        w1l = ( w1l + xl)|0;
1766
        w1h = ( w1h + ( ((w2h >>> 1) | (w2l << 31)) ^ ((w2h >>> 8) | (w2l << 24)) ^ (w2h >>> 7) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1767
        xl = ( ((w15l >>> 19) | (w15h << 13)) ^ ((w15l << 3) | (w15h >>> 29)) ^ ((w15l >>> 6) | (w15h << 26)) )|0;
1768
        w1l = ( w1l + xl)|0;
1769
        w1h = ( w1h + ( ((w15h >>> 19) | (w15l << 13)) ^ ((w15h << 3) | (w15l >>> 29)) ^ (w15h >>> 6) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1770
        tl = ( 0x5141ab53 + w1l )|0;
1771
        th = ( 0x1e376c08 + w1h + ((tl >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
1772
        tl = ( tl + hl )|0;
1773
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1774
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1775
        tl = ( tl + xl )|0;
1776
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1777
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1778
        tl = ( tl + xl )|0;
1779
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1780
        hl = gl; hh = gh;
1781
        gl = fl; gh = fh;
1782
        fl = el; fh = eh;
1783
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1784
        dl = cl; dh = ch;
1785
        cl = bl; ch = bh;
1786
        bl = al; bh = ah;
1787
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1788
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1789
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1790
        al = ( al + xl )|0;
1791
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1792
1793
        // 50
1794
        w2l = ( w2l + w11l )|0;
1795
        w2h = ( w2h + w11h + ((w2l >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
1796
        xl = ( ((w3l >>> 1) | (w3h << 31)) ^ ((w3l >>> 8) | (w3h << 24)) ^ ((w3l >>> 7) | (w3h << 25)) )|0;
1797
        w2l = ( w2l + xl)|0;
1798
        w2h = ( w2h + ( ((w3h >>> 1) | (w3l << 31)) ^ ((w3h >>> 8) | (w3l << 24)) ^ (w3h >>> 7) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1799
        xl = ( ((w0l >>> 19) | (w0h << 13)) ^ ((w0l << 3) | (w0h >>> 29)) ^ ((w0l >>> 6) | (w0h << 26)) )|0;
1800
        w2l = ( w2l + xl)|0;
1801
        w2h = ( w2h + ( ((w0h >>> 19) | (w0l << 13)) ^ ((w0h << 3) | (w0l >>> 29)) ^ (w0h >>> 6) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1802
        tl = ( 0xdf8eeb99 + w2l )|0;
1803
        th = ( 0x2748774c + w2h + ((tl >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
1804
        tl = ( tl + hl )|0;
1805
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1806
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1807
        tl = ( tl + xl )|0;
1808
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1809
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1810
        tl = ( tl + xl )|0;
1811
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1812
        hl = gl; hh = gh;
1813
        gl = fl; gh = fh;
1814
        fl = el; fh = eh;
1815
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1816
        dl = cl; dh = ch;
1817
        cl = bl; ch = bh;
1818
        bl = al; bh = ah;
1819
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1820
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1821
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1822
        al = ( al + xl )|0;
1823
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1824
1825
        // 51
1826
        w3l = ( w3l + w12l )|0;
1827
        w3h = ( w3h + w12h + ((w3l >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
1828
        xl = ( ((w4l >>> 1) | (w4h << 31)) ^ ((w4l >>> 8) | (w4h << 24)) ^ ((w4l >>> 7) | (w4h << 25)) )|0;
1829
        w3l = ( w3l + xl)|0;
1830
        w3h = ( w3h + ( ((w4h >>> 1) | (w4l << 31)) ^ ((w4h >>> 8) | (w4l << 24)) ^ (w4h >>> 7) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1831
        xl = ( ((w1l >>> 19) | (w1h << 13)) ^ ((w1l << 3) | (w1h >>> 29)) ^ ((w1l >>> 6) | (w1h << 26)) )|0;
1832
        w3l = ( w3l + xl)|0;
1833
        w3h = ( w3h + ( ((w1h >>> 19) | (w1l << 13)) ^ ((w1h << 3) | (w1l >>> 29)) ^ (w1h >>> 6) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1834
        tl = ( 0xe19b48a8 + w3l )|0;
1835
        th = ( 0x34b0bcb5 + w3h + ((tl >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
1836
        tl = ( tl + hl )|0;
1837
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1838
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1839
        tl = ( tl + xl )|0;
1840
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1841
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1842
        tl = ( tl + xl )|0;
1843
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1844
        hl = gl; hh = gh;
1845
        gl = fl; gh = fh;
1846
        fl = el; fh = eh;
1847
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1848
        dl = cl; dh = ch;
1849
        cl = bl; ch = bh;
1850
        bl = al; bh = ah;
1851
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1852
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1853
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1854
        al = ( al + xl )|0;
1855
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1856
1857
        // 52
1858
        w4l = ( w4l + w13l )|0;
1859
        w4h = ( w4h + w13h + ((w4l >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
1860
        xl = ( ((w5l >>> 1) | (w5h << 31)) ^ ((w5l >>> 8) | (w5h << 24)) ^ ((w5l >>> 7) | (w5h << 25)) )|0;
1861
        w4l = ( w4l + xl)|0;
1862
        w4h = ( w4h + ( ((w5h >>> 1) | (w5l << 31)) ^ ((w5h >>> 8) | (w5l << 24)) ^ (w5h >>> 7) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1863
        xl = ( ((w2l >>> 19) | (w2h << 13)) ^ ((w2l << 3) | (w2h >>> 29)) ^ ((w2l >>> 6) | (w2h << 26)) )|0;
1864
        w4l = ( w4l + xl)|0;
1865
        w4h = ( w4h + ( ((w2h >>> 19) | (w2l << 13)) ^ ((w2h << 3) | (w2l >>> 29)) ^ (w2h >>> 6) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1866
        tl = ( 0xc5c95a63 + w4l )|0;
1867
        th = ( 0x391c0cb3 + w4h + ((tl >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
1868
        tl = ( tl + hl )|0;
1869
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1870
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1871
        tl = ( tl + xl )|0;
1872
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1873
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1874
        tl = ( tl + xl )|0;
1875
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1876
        hl = gl; hh = gh;
1877
        gl = fl; gh = fh;
1878
        fl = el; fh = eh;
1879
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1880
        dl = cl; dh = ch;
1881
        cl = bl; ch = bh;
1882
        bl = al; bh = ah;
1883
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1884
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1885
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1886
        al = ( al + xl )|0;
1887
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1888
1889
        // 53
1890
        w5l = ( w5l + w14l )|0;
1891
        w5h = ( w5h + w14h + ((w5l >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
1892
        xl = ( ((w6l >>> 1) | (w6h << 31)) ^ ((w6l >>> 8) | (w6h << 24)) ^ ((w6l >>> 7) | (w6h << 25)) )|0;
1893
        w5l = ( w5l + xl)|0;
1894
        w5h = ( w5h + ( ((w6h >>> 1) | (w6l << 31)) ^ ((w6h >>> 8) | (w6l << 24)) ^ (w6h >>> 7) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1895
        xl = ( ((w3l >>> 19) | (w3h << 13)) ^ ((w3l << 3) | (w3h >>> 29)) ^ ((w3l >>> 6) | (w3h << 26)) )|0;
1896
        w5l = ( w5l + xl)|0;
1897
        w5h = ( w5h + ( ((w3h >>> 19) | (w3l << 13)) ^ ((w3h << 3) | (w3l >>> 29)) ^ (w3h >>> 6) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1898
        tl = ( 0xe3418acb + w5l )|0;
1899
        th = ( 0x4ed8aa4a + w5h + ((tl >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
1900
        tl = ( tl + hl )|0;
1901
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1902
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1903
        tl = ( tl + xl )|0;
1904
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1905
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1906
        tl = ( tl + xl )|0;
1907
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1908
        hl = gl; hh = gh;
1909
        gl = fl; gh = fh;
1910
        fl = el; fh = eh;
1911
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1912
        dl = cl; dh = ch;
1913
        cl = bl; ch = bh;
1914
        bl = al; bh = ah;
1915
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1916
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1917
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1918
        al = ( al + xl )|0;
1919
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1920
1921
        // 54
1922
        w6l = ( w6l + w15l )|0;
1923
        w6h = ( w6h + w15h + ((w6l >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
1924
        xl = ( ((w7l >>> 1) | (w7h << 31)) ^ ((w7l >>> 8) | (w7h << 24)) ^ ((w7l >>> 7) | (w7h << 25)) )|0;
1925
        w6l = ( w6l + xl)|0;
1926
        w6h = ( w6h + ( ((w7h >>> 1) | (w7l << 31)) ^ ((w7h >>> 8) | (w7l << 24)) ^ (w7h >>> 7) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1927
        xl = ( ((w4l >>> 19) | (w4h << 13)) ^ ((w4l << 3) | (w4h >>> 29)) ^ ((w4l >>> 6) | (w4h << 26)) )|0;
1928
        w6l = ( w6l + xl)|0;
1929
        w6h = ( w6h + ( ((w4h >>> 19) | (w4l << 13)) ^ ((w4h << 3) | (w4l >>> 29)) ^ (w4h >>> 6) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1930
        tl = ( 0x7763e373 + w6l )|0;
1931
        th = ( 0x5b9cca4f + w6h + ((tl >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
1932
        tl = ( tl + hl )|0;
1933
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1934
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1935
        tl = ( tl + xl )|0;
1936
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1937
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1938
        tl = ( tl + xl )|0;
1939
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1940
        hl = gl; hh = gh;
1941
        gl = fl; gh = fh;
1942
        fl = el; fh = eh;
1943
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1944
        dl = cl; dh = ch;
1945
        cl = bl; ch = bh;
1946
        bl = al; bh = ah;
1947
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1948
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1949
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1950
        al = ( al + xl )|0;
1951
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1952
1953
        // 55
1954
        w7l = ( w7l + w0l )|0;
1955
        w7h = ( w7h + w0h + ((w7l >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
1956
        xl = ( ((w8l >>> 1) | (w8h << 31)) ^ ((w8l >>> 8) | (w8h << 24)) ^ ((w8l >>> 7) | (w8h << 25)) )|0;
1957
        w7l = ( w7l + xl)|0;
1958
        w7h = ( w7h + ( ((w8h >>> 1) | (w8l << 31)) ^ ((w8h >>> 8) | (w8l << 24)) ^ (w8h >>> 7) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1959
        xl = ( ((w5l >>> 19) | (w5h << 13)) ^ ((w5l << 3) | (w5h >>> 29)) ^ ((w5l >>> 6) | (w5h << 26)) )|0;
1960
        w7l = ( w7l + xl)|0;
1961
        w7h = ( w7h + ( ((w5h >>> 19) | (w5l << 13)) ^ ((w5h << 3) | (w5l >>> 29)) ^ (w5h >>> 6) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1962
        tl = ( 0xd6b2b8a3 + w7l )|0;
1963
        th = ( 0x682e6ff3 + w7h + ((tl >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
1964
        tl = ( tl + hl )|0;
1965
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1966
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1967
        tl = ( tl + xl )|0;
1968
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1969
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
1970
        tl = ( tl + xl )|0;
1971
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1972
        hl = gl; hh = gh;
1973
        gl = fl; gh = fh;
1974
        fl = el; fh = eh;
1975
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
1976
        dl = cl; dh = ch;
1977
        cl = bl; ch = bh;
1978
        bl = al; bh = ah;
1979
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
1980
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
1981
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
1982
        al = ( al + xl )|0;
1983
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1984
1985
        // 56
1986
        w8l = ( w8l + w1l )|0;
1987
        w8h = ( w8h + w1h + ((w8l >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
1988
        xl = ( ((w9l >>> 1) | (w9h << 31)) ^ ((w9l >>> 8) | (w9h << 24)) ^ ((w9l >>> 7) | (w9h << 25)) )|0;
1989
        w8l = ( w8l + xl)|0;
1990
        w8h = ( w8h + ( ((w9h >>> 1) | (w9l << 31)) ^ ((w9h >>> 8) | (w9l << 24)) ^ (w9h >>> 7) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1991
        xl = ( ((w6l >>> 19) | (w6h << 13)) ^ ((w6l << 3) | (w6h >>> 29)) ^ ((w6l >>> 6) | (w6h << 26)) )|0;
1992
        w8l = ( w8l + xl)|0;
1993
        w8h = ( w8h + ( ((w6h >>> 19) | (w6l << 13)) ^ ((w6h << 3) | (w6l >>> 29)) ^ (w6h >>> 6) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
1994
        tl = ( 0x5defb2fc + w8l )|0;
1995
        th = ( 0x748f82ee + w8h + ((tl >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
1996
        tl = ( tl + hl )|0;
1997
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
1998
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
1999
        tl = ( tl + xl )|0;
2000
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2001
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2002
        tl = ( tl + xl )|0;
2003
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2004
        hl = gl; hh = gh;
2005
        gl = fl; gh = fh;
2006
        fl = el; fh = eh;
2007
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2008
        dl = cl; dh = ch;
2009
        cl = bl; ch = bh;
2010
        bl = al; bh = ah;
2011
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2012
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2013
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2014
        al = ( al + xl )|0;
2015
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2016
2017
        // 57
2018
        w9l = ( w9l + w2l )|0;
2019
        w9h = ( w9h + w2h + ((w9l >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
2020
        xl = ( ((w10l >>> 1) | (w10h << 31)) ^ ((w10l >>> 8) | (w10h << 24)) ^ ((w10l >>> 7) | (w10h << 25)) )|0;
2021
        w9l = ( w9l + xl)|0;
2022
        w9h = ( w9h + ( ((w10h >>> 1) | (w10l << 31)) ^ ((w10h >>> 8) | (w10l << 24)) ^ (w10h >>> 7) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2023
        xl = ( ((w7l >>> 19) | (w7h << 13)) ^ ((w7l << 3) | (w7h >>> 29)) ^ ((w7l >>> 6) | (w7h << 26)) )|0;
2024
        w9l = ( w9l + xl)|0;
2025
        w9h = ( w9h + ( ((w7h >>> 19) | (w7l << 13)) ^ ((w7h << 3) | (w7l >>> 29)) ^ (w7h >>> 6) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2026
        tl = ( 0x43172f60 + w9l )|0;
2027
        th = ( 0x78a5636f + w9h + ((tl >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
2028
        tl = ( tl + hl )|0;
2029
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2030
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2031
        tl = ( tl + xl )|0;
2032
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2033
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2034
        tl = ( tl + xl )|0;
2035
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2036
        hl = gl; hh = gh;
2037
        gl = fl; gh = fh;
2038
        fl = el; fh = eh;
2039
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2040
        dl = cl; dh = ch;
2041
        cl = bl; ch = bh;
2042
        bl = al; bh = ah;
2043
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2044
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2045
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2046
        al = ( al + xl )|0;
2047
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2048
2049
        // 58
2050
        w10l = ( w10l + w3l )|0;
2051
        w10h = ( w10h + w3h + ((w10l >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
2052
        xl = ( ((w11l >>> 1) | (w11h << 31)) ^ ((w11l >>> 8) | (w11h << 24)) ^ ((w11l >>> 7) | (w11h << 25)) )|0;
2053
        w10l = ( w10l + xl)|0;
2054
        w10h = ( w10h + ( ((w11h >>> 1) | (w11l << 31)) ^ ((w11h >>> 8) | (w11l << 24)) ^ (w11h >>> 7) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2055
        xl = ( ((w8l >>> 19) | (w8h << 13)) ^ ((w8l << 3) | (w8h >>> 29)) ^ ((w8l >>> 6) | (w8h << 26)) )|0;
2056
        w10l = ( w10l + xl)|0;
2057
        w10h = ( w10h + ( ((w8h >>> 19) | (w8l << 13)) ^ ((w8h << 3) | (w8l >>> 29)) ^ (w8h >>> 6) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2058
        tl = ( 0xa1f0ab72 + w10l )|0;
2059
        th = ( 0x84c87814 + w10h + ((tl >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
2060
        tl = ( tl + hl )|0;
2061
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2062
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2063
        tl = ( tl + xl )|0;
2064
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2065
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2066
        tl = ( tl + xl )|0;
2067
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2068
        hl = gl; hh = gh;
2069
        gl = fl; gh = fh;
2070
        fl = el; fh = eh;
2071
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2072
        dl = cl; dh = ch;
2073
        cl = bl; ch = bh;
2074
        bl = al; bh = ah;
2075
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2076
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2077
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2078
        al = ( al + xl )|0;
2079
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2080
2081
        // 59
2082
        w11l = ( w11l + w4l )|0;
2083
        w11h = ( w11h + w4h + ((w11l >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
2084
        xl = ( ((w12l >>> 1) | (w12h << 31)) ^ ((w12l >>> 8) | (w12h << 24)) ^ ((w12l >>> 7) | (w12h << 25)) )|0;
2085
        w11l = ( w11l + xl)|0;
2086
        w11h = ( w11h + ( ((w12h >>> 1) | (w12l << 31)) ^ ((w12h >>> 8) | (w12l << 24)) ^ (w12h >>> 7) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2087
        xl = ( ((w9l >>> 19) | (w9h << 13)) ^ ((w9l << 3) | (w9h >>> 29)) ^ ((w9l >>> 6) | (w9h << 26)) )|0;
2088
        w11l = ( w11l + xl)|0;
2089
        w11h = ( w11h + ( ((w9h >>> 19) | (w9l << 13)) ^ ((w9h << 3) | (w9l >>> 29)) ^ (w9h >>> 6) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2090
        tl = ( 0x1a6439ec + w11l )|0;
2091
        th = ( 0x8cc70208 + w11h + ((tl >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
2092
        tl = ( tl + hl )|0;
2093
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2094
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2095
        tl = ( tl + xl )|0;
2096
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2097
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2098
        tl = ( tl + xl )|0;
2099
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2100
        hl = gl; hh = gh;
2101
        gl = fl; gh = fh;
2102
        fl = el; fh = eh;
2103
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2104
        dl = cl; dh = ch;
2105
        cl = bl; ch = bh;
2106
        bl = al; bh = ah;
2107
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2108
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2109
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2110
        al = ( al + xl )|0;
2111
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2112
2113
        // 60
2114
        w12l = ( w12l + w5l )|0;
2115
        w12h = ( w12h + w5h + ((w12l >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
2116
        xl = ( ((w13l >>> 1) | (w13h << 31)) ^ ((w13l >>> 8) | (w13h << 24)) ^ ((w13l >>> 7) | (w13h << 25)) )|0;
2117
        w12l = ( w12l + xl)|0;
2118
        w12h = ( w12h + ( ((w13h >>> 1) | (w13l << 31)) ^ ((w13h >>> 8) | (w13l << 24)) ^ (w13h >>> 7) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2119
        xl = ( ((w10l >>> 19) | (w10h << 13)) ^ ((w10l << 3) | (w10h >>> 29)) ^ ((w10l >>> 6) | (w10h << 26)) )|0;
2120
        w12l = ( w12l + xl)|0;
2121
        w12h = ( w12h + ( ((w10h >>> 19) | (w10l << 13)) ^ ((w10h << 3) | (w10l >>> 29)) ^ (w10h >>> 6) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2122
        tl = ( 0x23631e28 + w12l )|0;
2123
        th = ( 0x90befffa + w12h + ((tl >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
2124
        tl = ( tl + hl )|0;
2125
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2126
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2127
        tl = ( tl + xl )|0;
2128
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2129
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2130
        tl = ( tl + xl )|0;
2131
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2132
        hl = gl; hh = gh;
2133
        gl = fl; gh = fh;
2134
        fl = el; fh = eh;
2135
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2136
        dl = cl; dh = ch;
2137
        cl = bl; ch = bh;
2138
        bl = al; bh = ah;
2139
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2140
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2141
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2142
        al = ( al + xl )|0;
2143
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2144
2145
        // 61
2146
        w13l = ( w13l + w6l )|0;
2147
        w13h = ( w13h + w6h + ((w13l >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
2148
        xl = ( ((w14l >>> 1) | (w14h << 31)) ^ ((w14l >>> 8) | (w14h << 24)) ^ ((w14l >>> 7) | (w14h << 25)) )|0;
2149
        w13l = ( w13l + xl)|0;
2150
        w13h = ( w13h + ( ((w14h >>> 1) | (w14l << 31)) ^ ((w14h >>> 8) | (w14l << 24)) ^ (w14h >>> 7) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2151
        xl = ( ((w11l >>> 19) | (w11h << 13)) ^ ((w11l << 3) | (w11h >>> 29)) ^ ((w11l >>> 6) | (w11h << 26)) )|0;
2152
        w13l = ( w13l + xl)|0;
2153
        w13h = ( w13h + ( ((w11h >>> 19) | (w11l << 13)) ^ ((w11h << 3) | (w11l >>> 29)) ^ (w11h >>> 6) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2154
        tl = ( 0xde82bde9 + w13l )|0;
2155
        th = ( 0xa4506ceb + w13h + ((tl >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
2156
        tl = ( tl + hl )|0;
2157
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2158
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2159
        tl = ( tl + xl )|0;
2160
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2161
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2162
        tl = ( tl + xl )|0;
2163
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2164
        hl = gl; hh = gh;
2165
        gl = fl; gh = fh;
2166
        fl = el; fh = eh;
2167
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2168
        dl = cl; dh = ch;
2169
        cl = bl; ch = bh;
2170
        bl = al; bh = ah;
2171
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2172
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2173
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2174
        al = ( al + xl )|0;
2175
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2176
2177
        // 62
2178
        w14l = ( w14l + w7l )|0;
2179
        w14h = ( w14h + w7h + ((w14l >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
2180
        xl = ( ((w15l >>> 1) | (w15h << 31)) ^ ((w15l >>> 8) | (w15h << 24)) ^ ((w15l >>> 7) | (w15h << 25)) )|0;
2181
        w14l = ( w14l + xl)|0;
2182
        w14h = ( w14h + ( ((w15h >>> 1) | (w15l << 31)) ^ ((w15h >>> 8) | (w15l << 24)) ^ (w15h >>> 7) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2183
        xl = ( ((w12l >>> 19) | (w12h << 13)) ^ ((w12l << 3) | (w12h >>> 29)) ^ ((w12l >>> 6) | (w12h << 26)) )|0;
2184
        w14l = ( w14l + xl)|0;
2185
        w14h = ( w14h + ( ((w12h >>> 19) | (w12l << 13)) ^ ((w12h << 3) | (w12l >>> 29)) ^ (w12h >>> 6) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2186
        tl = ( 0xb2c67915 + w14l )|0;
2187
        th = ( 0xbef9a3f7 + w14h + ((tl >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
2188
        tl = ( tl + hl )|0;
2189
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2190
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2191
        tl = ( tl + xl )|0;
2192
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2193
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2194
        tl = ( tl + xl )|0;
2195
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2196
        hl = gl; hh = gh;
2197
        gl = fl; gh = fh;
2198
        fl = el; fh = eh;
2199
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2200
        dl = cl; dh = ch;
2201
        cl = bl; ch = bh;
2202
        bl = al; bh = ah;
2203
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2204
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2205
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2206
        al = ( al + xl )|0;
2207
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2208
2209
        // 63
2210
        w15l = ( w15l + w8l )|0;
2211
        w15h = ( w15h + w8h + ((w15l >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
2212
        xl = ( ((w0l >>> 1) | (w0h << 31)) ^ ((w0l >>> 8) | (w0h << 24)) ^ ((w0l >>> 7) | (w0h << 25)) )|0;
2213
        w15l = ( w15l + xl)|0;
2214
        w15h = ( w15h + ( ((w0h >>> 1) | (w0l << 31)) ^ ((w0h >>> 8) | (w0l << 24)) ^ (w0h >>> 7) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2215
        xl = ( ((w13l >>> 19) | (w13h << 13)) ^ ((w13l << 3) | (w13h >>> 29)) ^ ((w13l >>> 6) | (w13h << 26)) )|0;
2216
        w15l = ( w15l + xl)|0;
2217
        w15h = ( w15h + ( ((w13h >>> 19) | (w13l << 13)) ^ ((w13h << 3) | (w13l >>> 29)) ^ (w13h >>> 6) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2218
        tl = ( 0xe372532b + w15l )|0;
2219
        th = ( 0xc67178f2 + w15h + ((tl >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
2220
        tl = ( tl + hl )|0;
2221
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2222
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2223
        tl = ( tl + xl )|0;
2224
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2225
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2226
        tl = ( tl + xl )|0;
2227
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2228
        hl = gl; hh = gh;
2229
        gl = fl; gh = fh;
2230
        fl = el; fh = eh;
2231
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2232
        dl = cl; dh = ch;
2233
        cl = bl; ch = bh;
2234
        bl = al; bh = ah;
2235
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2236
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2237
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2238
        al = ( al + xl )|0;
2239
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2240
2241
        // 64
2242
        w0l = ( w0l + w9l )|0;
2243
        w0h = ( w0h + w9h + ((w0l >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
2244
        xl = ( ((w1l >>> 1) | (w1h << 31)) ^ ((w1l >>> 8) | (w1h << 24)) ^ ((w1l >>> 7) | (w1h << 25)) )|0;
2245
        w0l = ( w0l + xl)|0;
2246
        w0h = ( w0h + ( ((w1h >>> 1) | (w1l << 31)) ^ ((w1h >>> 8) | (w1l << 24)) ^ (w1h >>> 7) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2247
        xl = ( ((w14l >>> 19) | (w14h << 13)) ^ ((w14l << 3) | (w14h >>> 29)) ^ ((w14l >>> 6) | (w14h << 26)) )|0;
2248
        w0l = ( w0l + xl)|0;
2249
        w0h = ( w0h + ( ((w14h >>> 19) | (w14l << 13)) ^ ((w14h << 3) | (w14l >>> 29)) ^ (w14h >>> 6) ) + ((w0l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2250
        tl = ( 0xea26619c + w0l )|0;
2251
        th = ( 0xca273ece + w0h + ((tl >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
2252
        tl = ( tl + hl )|0;
2253
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2254
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2255
        tl = ( tl + xl )|0;
2256
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2257
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2258
        tl = ( tl + xl )|0;
2259
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2260
        hl = gl; hh = gh;
2261
        gl = fl; gh = fh;
2262
        fl = el; fh = eh;
2263
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2264
        dl = cl; dh = ch;
2265
        cl = bl; ch = bh;
2266
        bl = al; bh = ah;
2267
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2268
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2269
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2270
        al = ( al + xl )|0;
2271
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2272
2273
        // 65
2274
        w1l = ( w1l + w10l )|0;
2275
        w1h = ( w1h + w10h + ((w1l >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
2276
        xl = ( ((w2l >>> 1) | (w2h << 31)) ^ ((w2l >>> 8) | (w2h << 24)) ^ ((w2l >>> 7) | (w2h << 25)) )|0;
2277
        w1l = ( w1l + xl)|0;
2278
        w1h = ( w1h + ( ((w2h >>> 1) | (w2l << 31)) ^ ((w2h >>> 8) | (w2l << 24)) ^ (w2h >>> 7) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2279
        xl = ( ((w15l >>> 19) | (w15h << 13)) ^ ((w15l << 3) | (w15h >>> 29)) ^ ((w15l >>> 6) | (w15h << 26)) )|0;
2280
        w1l = ( w1l + xl)|0;
2281
        w1h = ( w1h + ( ((w15h >>> 19) | (w15l << 13)) ^ ((w15h << 3) | (w15l >>> 29)) ^ (w15h >>> 6) ) + ((w1l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2282
        tl = ( 0x21c0c207 + w1l )|0;
2283
        th = ( 0xd186b8c7 + w1h + ((tl >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
2284
        tl = ( tl + hl )|0;
2285
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2286
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2287
        tl = ( tl + xl )|0;
2288
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2289
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2290
        tl = ( tl + xl )|0;
2291
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2292
        hl = gl; hh = gh;
2293
        gl = fl; gh = fh;
2294
        fl = el; fh = eh;
2295
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2296
        dl = cl; dh = ch;
2297
        cl = bl; ch = bh;
2298
        bl = al; bh = ah;
2299
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2300
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2301
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2302
        al = ( al + xl )|0;
2303
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2304
2305
        // 66
2306
        w2l = ( w2l + w11l )|0;
2307
        w2h = ( w2h + w11h + ((w2l >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
2308
        xl = ( ((w3l >>> 1) | (w3h << 31)) ^ ((w3l >>> 8) | (w3h << 24)) ^ ((w3l >>> 7) | (w3h << 25)) )|0;
2309
        w2l = ( w2l + xl)|0;
2310
        w2h = ( w2h + ( ((w3h >>> 1) | (w3l << 31)) ^ ((w3h >>> 8) | (w3l << 24)) ^ (w3h >>> 7) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2311
        xl = ( ((w0l >>> 19) | (w0h << 13)) ^ ((w0l << 3) | (w0h >>> 29)) ^ ((w0l >>> 6) | (w0h << 26)) )|0;
2312
        w2l = ( w2l + xl)|0;
2313
        w2h = ( w2h + ( ((w0h >>> 19) | (w0l << 13)) ^ ((w0h << 3) | (w0l >>> 29)) ^ (w0h >>> 6) ) + ((w2l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2314
        tl = ( 0xcde0eb1e + w2l )|0;
2315
        th = ( 0xeada7dd6 + w2h + ((tl >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
2316
        tl = ( tl + hl )|0;
2317
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2318
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2319
        tl = ( tl + xl )|0;
2320
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2321
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2322
        tl = ( tl + xl )|0;
2323
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2324
        hl = gl; hh = gh;
2325
        gl = fl; gh = fh;
2326
        fl = el; fh = eh;
2327
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2328
        dl = cl; dh = ch;
2329
        cl = bl; ch = bh;
2330
        bl = al; bh = ah;
2331
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2332
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2333
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2334
        al = ( al + xl )|0;
2335
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2336
2337
        // 67
2338
        w3l = ( w3l + w12l )|0;
2339
        w3h = ( w3h + w12h + ((w3l >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
2340
        xl = ( ((w4l >>> 1) | (w4h << 31)) ^ ((w4l >>> 8) | (w4h << 24)) ^ ((w4l >>> 7) | (w4h << 25)) )|0;
2341
        w3l = ( w3l + xl)|0;
2342
        w3h = ( w3h + ( ((w4h >>> 1) | (w4l << 31)) ^ ((w4h >>> 8) | (w4l << 24)) ^ (w4h >>> 7) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2343
        xl = ( ((w1l >>> 19) | (w1h << 13)) ^ ((w1l << 3) | (w1h >>> 29)) ^ ((w1l >>> 6) | (w1h << 26)) )|0;
2344
        w3l = ( w3l + xl)|0;
2345
        w3h = ( w3h + ( ((w1h >>> 19) | (w1l << 13)) ^ ((w1h << 3) | (w1l >>> 29)) ^ (w1h >>> 6) ) + ((w3l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2346
        tl = ( 0xee6ed178 + w3l )|0;
2347
        th = ( 0xf57d4f7f + w3h + ((tl >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
2348
        tl = ( tl + hl )|0;
2349
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2350
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2351
        tl = ( tl + xl )|0;
2352
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2353
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2354
        tl = ( tl + xl )|0;
2355
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2356
        hl = gl; hh = gh;
2357
        gl = fl; gh = fh;
2358
        fl = el; fh = eh;
2359
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2360
        dl = cl; dh = ch;
2361
        cl = bl; ch = bh;
2362
        bl = al; bh = ah;
2363
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2364
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2365
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2366
        al = ( al + xl )|0;
2367
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2368
2369
        // 68
2370
        w4l = ( w4l + w13l )|0;
2371
        w4h = ( w4h + w13h + ((w4l >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
2372
        xl = ( ((w5l >>> 1) | (w5h << 31)) ^ ((w5l >>> 8) | (w5h << 24)) ^ ((w5l >>> 7) | (w5h << 25)) )|0;
2373
        w4l = ( w4l + xl)|0;
2374
        w4h = ( w4h + ( ((w5h >>> 1) | (w5l << 31)) ^ ((w5h >>> 8) | (w5l << 24)) ^ (w5h >>> 7) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2375
        xl = ( ((w2l >>> 19) | (w2h << 13)) ^ ((w2l << 3) | (w2h >>> 29)) ^ ((w2l >>> 6) | (w2h << 26)) )|0;
2376
        w4l = ( w4l + xl)|0;
2377
        w4h = ( w4h + ( ((w2h >>> 19) | (w2l << 13)) ^ ((w2h << 3) | (w2l >>> 29)) ^ (w2h >>> 6) ) + ((w4l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2378
        tl = ( 0x72176fba + w4l )|0;
2379
        th = ( 0x6f067aa + w4h + ((tl >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
2380
        tl = ( tl + hl )|0;
2381
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2382
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2383
        tl = ( tl + xl )|0;
2384
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2385
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2386
        tl = ( tl + xl )|0;
2387
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2388
        hl = gl; hh = gh;
2389
        gl = fl; gh = fh;
2390
        fl = el; fh = eh;
2391
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2392
        dl = cl; dh = ch;
2393
        cl = bl; ch = bh;
2394
        bl = al; bh = ah;
2395
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2396
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2397
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2398
        al = ( al + xl )|0;
2399
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2400
2401
        // 69
2402
        w5l = ( w5l + w14l )|0;
2403
        w5h = ( w5h + w14h + ((w5l >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
2404
        xl = ( ((w6l >>> 1) | (w6h << 31)) ^ ((w6l >>> 8) | (w6h << 24)) ^ ((w6l >>> 7) | (w6h << 25)) )|0;
2405
        w5l = ( w5l + xl)|0;
2406
        w5h = ( w5h + ( ((w6h >>> 1) | (w6l << 31)) ^ ((w6h >>> 8) | (w6l << 24)) ^ (w6h >>> 7) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2407
        xl = ( ((w3l >>> 19) | (w3h << 13)) ^ ((w3l << 3) | (w3h >>> 29)) ^ ((w3l >>> 6) | (w3h << 26)) )|0;
2408
        w5l = ( w5l + xl)|0;
2409
        w5h = ( w5h + ( ((w3h >>> 19) | (w3l << 13)) ^ ((w3h << 3) | (w3l >>> 29)) ^ (w3h >>> 6) ) + ((w5l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2410
        tl = ( 0xa2c898a6 + w5l )|0;
2411
        th = ( 0xa637dc5 + w5h + ((tl >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
2412
        tl = ( tl + hl )|0;
2413
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2414
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2415
        tl = ( tl + xl )|0;
2416
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2417
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2418
        tl = ( tl + xl )|0;
2419
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2420
        hl = gl; hh = gh;
2421
        gl = fl; gh = fh;
2422
        fl = el; fh = eh;
2423
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2424
        dl = cl; dh = ch;
2425
        cl = bl; ch = bh;
2426
        bl = al; bh = ah;
2427
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2428
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2429
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2430
        al = ( al + xl )|0;
2431
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2432
2433
        // 70
2434
        w6l = ( w6l + w15l )|0;
2435
        w6h = ( w6h + w15h + ((w6l >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
2436
        xl = ( ((w7l >>> 1) | (w7h << 31)) ^ ((w7l >>> 8) | (w7h << 24)) ^ ((w7l >>> 7) | (w7h << 25)) )|0;
2437
        w6l = ( w6l + xl)|0;
2438
        w6h = ( w6h + ( ((w7h >>> 1) | (w7l << 31)) ^ ((w7h >>> 8) | (w7l << 24)) ^ (w7h >>> 7) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2439
        xl = ( ((w4l >>> 19) | (w4h << 13)) ^ ((w4l << 3) | (w4h >>> 29)) ^ ((w4l >>> 6) | (w4h << 26)) )|0;
2440
        w6l = ( w6l + xl)|0;
2441
        w6h = ( w6h + ( ((w4h >>> 19) | (w4l << 13)) ^ ((w4h << 3) | (w4l >>> 29)) ^ (w4h >>> 6) ) + ((w6l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2442
        tl = ( 0xbef90dae + w6l )|0;
2443
        th = ( 0x113f9804 + w6h + ((tl >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
2444
        tl = ( tl + hl )|0;
2445
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2446
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2447
        tl = ( tl + xl )|0;
2448
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2449
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2450
        tl = ( tl + xl )|0;
2451
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2452
        hl = gl; hh = gh;
2453
        gl = fl; gh = fh;
2454
        fl = el; fh = eh;
2455
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2456
        dl = cl; dh = ch;
2457
        cl = bl; ch = bh;
2458
        bl = al; bh = ah;
2459
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2460
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2461
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2462
        al = ( al + xl )|0;
2463
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2464
2465
        // 71
2466
        w7l = ( w7l + w0l )|0;
2467
        w7h = ( w7h + w0h + ((w7l >>> 0) < (w0l >>> 0) ? 1 : 0) )|0;
2468
        xl = ( ((w8l >>> 1) | (w8h << 31)) ^ ((w8l >>> 8) | (w8h << 24)) ^ ((w8l >>> 7) | (w8h << 25)) )|0;
2469
        w7l = ( w7l + xl)|0;
2470
        w7h = ( w7h + ( ((w8h >>> 1) | (w8l << 31)) ^ ((w8h >>> 8) | (w8l << 24)) ^ (w8h >>> 7) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2471
        xl = ( ((w5l >>> 19) | (w5h << 13)) ^ ((w5l << 3) | (w5h >>> 29)) ^ ((w5l >>> 6) | (w5h << 26)) )|0;
2472
        w7l = ( w7l + xl)|0;
2473
        w7h = ( w7h + ( ((w5h >>> 19) | (w5l << 13)) ^ ((w5h << 3) | (w5l >>> 29)) ^ (w5h >>> 6) ) + ((w7l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2474
        tl = ( 0x131c471b + w7l )|0;
2475
        th = ( 0x1b710b35 + w7h + ((tl >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
2476
        tl = ( tl + hl )|0;
2477
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2478
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2479
        tl = ( tl + xl )|0;
2480
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2481
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2482
        tl = ( tl + xl )|0;
2483
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2484
        hl = gl; hh = gh;
2485
        gl = fl; gh = fh;
2486
        fl = el; fh = eh;
2487
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2488
        dl = cl; dh = ch;
2489
        cl = bl; ch = bh;
2490
        bl = al; bh = ah;
2491
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2492
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2493
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2494
        al = ( al + xl )|0;
2495
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2496
2497
        // 72
2498
        w8l = ( w8l + w1l )|0;
2499
        w8h = ( w8h + w1h + ((w8l >>> 0) < (w1l >>> 0) ? 1 : 0) )|0;
2500
        xl = ( ((w9l >>> 1) | (w9h << 31)) ^ ((w9l >>> 8) | (w9h << 24)) ^ ((w9l >>> 7) | (w9h << 25)) )|0;
2501
        w8l = ( w8l + xl)|0;
2502
        w8h = ( w8h + ( ((w9h >>> 1) | (w9l << 31)) ^ ((w9h >>> 8) | (w9l << 24)) ^ (w9h >>> 7) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2503
        xl = ( ((w6l >>> 19) | (w6h << 13)) ^ ((w6l << 3) | (w6h >>> 29)) ^ ((w6l >>> 6) | (w6h << 26)) )|0;
2504
        w8l = ( w8l + xl)|0;
2505
        w8h = ( w8h + ( ((w6h >>> 19) | (w6l << 13)) ^ ((w6h << 3) | (w6l >>> 29)) ^ (w6h >>> 6) ) + ((w8l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2506
        tl = ( 0x23047d84 + w8l )|0;
2507
        th = ( 0x28db77f5 + w8h + ((tl >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
2508
        tl = ( tl + hl )|0;
2509
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2510
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2511
        tl = ( tl + xl )|0;
2512
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2513
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2514
        tl = ( tl + xl )|0;
2515
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2516
        hl = gl; hh = gh;
2517
        gl = fl; gh = fh;
2518
        fl = el; fh = eh;
2519
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2520
        dl = cl; dh = ch;
2521
        cl = bl; ch = bh;
2522
        bl = al; bh = ah;
2523
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2524
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2525
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2526
        al = ( al + xl )|0;
2527
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2528
2529
        // 73
2530
        w9l = ( w9l + w2l )|0;
2531
        w9h = ( w9h + w2h + ((w9l >>> 0) < (w2l >>> 0) ? 1 : 0) )|0;
2532
        xl = ( ((w10l >>> 1) | (w10h << 31)) ^ ((w10l >>> 8) | (w10h << 24)) ^ ((w10l >>> 7) | (w10h << 25)) )|0;
2533
        w9l = ( w9l + xl)|0;
2534
        w9h = ( w9h + ( ((w10h >>> 1) | (w10l << 31)) ^ ((w10h >>> 8) | (w10l << 24)) ^ (w10h >>> 7) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2535
        xl = ( ((w7l >>> 19) | (w7h << 13)) ^ ((w7l << 3) | (w7h >>> 29)) ^ ((w7l >>> 6) | (w7h << 26)) )|0;
2536
        w9l = ( w9l + xl)|0;
2537
        w9h = ( w9h + ( ((w7h >>> 19) | (w7l << 13)) ^ ((w7h << 3) | (w7l >>> 29)) ^ (w7h >>> 6) ) + ((w9l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2538
        tl = ( 0x40c72493 + w9l )|0;
2539
        th = ( 0x32caab7b + w9h + ((tl >>> 0) < (w9l >>> 0) ? 1 : 0) )|0;
2540
        tl = ( tl + hl )|0;
2541
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2542
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2543
        tl = ( tl + xl )|0;
2544
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2545
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2546
        tl = ( tl + xl )|0;
2547
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2548
        hl = gl; hh = gh;
2549
        gl = fl; gh = fh;
2550
        fl = el; fh = eh;
2551
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2552
        dl = cl; dh = ch;
2553
        cl = bl; ch = bh;
2554
        bl = al; bh = ah;
2555
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2556
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2557
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2558
        al = ( al + xl )|0;
2559
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2560
2561
        // 74
2562
        w10l = ( w10l + w3l )|0;
2563
        w10h = ( w10h + w3h + ((w10l >>> 0) < (w3l >>> 0) ? 1 : 0) )|0;
2564
        xl = ( ((w11l >>> 1) | (w11h << 31)) ^ ((w11l >>> 8) | (w11h << 24)) ^ ((w11l >>> 7) | (w11h << 25)) )|0;
2565
        w10l = ( w10l + xl)|0;
2566
        w10h = ( w10h + ( ((w11h >>> 1) | (w11l << 31)) ^ ((w11h >>> 8) | (w11l << 24)) ^ (w11h >>> 7) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2567
        xl = ( ((w8l >>> 19) | (w8h << 13)) ^ ((w8l << 3) | (w8h >>> 29)) ^ ((w8l >>> 6) | (w8h << 26)) )|0;
2568
        w10l = ( w10l + xl)|0;
2569
        w10h = ( w10h + ( ((w8h >>> 19) | (w8l << 13)) ^ ((w8h << 3) | (w8l >>> 29)) ^ (w8h >>> 6) ) + ((w10l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2570
        tl = ( 0x15c9bebc + w10l )|0;
2571
        th = ( 0x3c9ebe0a + w10h + ((tl >>> 0) < (w10l >>> 0) ? 1 : 0) )|0;
2572
        tl = ( tl + hl )|0;
2573
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2574
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2575
        tl = ( tl + xl )|0;
2576
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2577
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2578
        tl = ( tl + xl )|0;
2579
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2580
        hl = gl; hh = gh;
2581
        gl = fl; gh = fh;
2582
        fl = el; fh = eh;
2583
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2584
        dl = cl; dh = ch;
2585
        cl = bl; ch = bh;
2586
        bl = al; bh = ah;
2587
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2588
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2589
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2590
        al = ( al + xl )|0;
2591
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2592
2593
        // 75
2594
        w11l = ( w11l + w4l )|0;
2595
        w11h = ( w11h + w4h + ((w11l >>> 0) < (w4l >>> 0) ? 1 : 0) )|0;
2596
        xl = ( ((w12l >>> 1) | (w12h << 31)) ^ ((w12l >>> 8) | (w12h << 24)) ^ ((w12l >>> 7) | (w12h << 25)) )|0;
2597
        w11l = ( w11l + xl)|0;
2598
        w11h = ( w11h + ( ((w12h >>> 1) | (w12l << 31)) ^ ((w12h >>> 8) | (w12l << 24)) ^ (w12h >>> 7) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2599
        xl = ( ((w9l >>> 19) | (w9h << 13)) ^ ((w9l << 3) | (w9h >>> 29)) ^ ((w9l >>> 6) | (w9h << 26)) )|0;
2600
        w11l = ( w11l + xl)|0;
2601
        w11h = ( w11h + ( ((w9h >>> 19) | (w9l << 13)) ^ ((w9h << 3) | (w9l >>> 29)) ^ (w9h >>> 6) ) + ((w11l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2602
        tl = ( 0x9c100d4c + w11l )|0;
2603
        th = ( 0x431d67c4 + w11h + ((tl >>> 0) < (w11l >>> 0) ? 1 : 0) )|0;
2604
        tl = ( tl + hl )|0;
2605
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2606
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2607
        tl = ( tl + xl )|0;
2608
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2609
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2610
        tl = ( tl + xl )|0;
2611
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2612
        hl = gl; hh = gh;
2613
        gl = fl; gh = fh;
2614
        fl = el; fh = eh;
2615
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2616
        dl = cl; dh = ch;
2617
        cl = bl; ch = bh;
2618
        bl = al; bh = ah;
2619
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2620
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2621
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2622
        al = ( al + xl )|0;
2623
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2624
2625
        // 76
2626
        w12l = ( w12l + w5l )|0;
2627
        w12h = ( w12h + w5h + ((w12l >>> 0) < (w5l >>> 0) ? 1 : 0) )|0;
2628
        xl = ( ((w13l >>> 1) | (w13h << 31)) ^ ((w13l >>> 8) | (w13h << 24)) ^ ((w13l >>> 7) | (w13h << 25)) )|0;
2629
        w12l = ( w12l + xl)|0;
2630
        w12h = ( w12h + ( ((w13h >>> 1) | (w13l << 31)) ^ ((w13h >>> 8) | (w13l << 24)) ^ (w13h >>> 7) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2631
        xl = ( ((w10l >>> 19) | (w10h << 13)) ^ ((w10l << 3) | (w10h >>> 29)) ^ ((w10l >>> 6) | (w10h << 26)) )|0;
2632
        w12l = ( w12l + xl)|0;
2633
        w12h = ( w12h + ( ((w10h >>> 19) | (w10l << 13)) ^ ((w10h << 3) | (w10l >>> 29)) ^ (w10h >>> 6) ) + ((w12l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2634
        tl = ( 0xcb3e42b6 + w12l )|0;
2635
        th = ( 0x4cc5d4be + w12h + ((tl >>> 0) < (w12l >>> 0) ? 1 : 0) )|0;
2636
        tl = ( tl + hl )|0;
2637
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2638
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2639
        tl = ( tl + xl )|0;
2640
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2641
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2642
        tl = ( tl + xl )|0;
2643
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2644
        hl = gl; hh = gh;
2645
        gl = fl; gh = fh;
2646
        fl = el; fh = eh;
2647
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2648
        dl = cl; dh = ch;
2649
        cl = bl; ch = bh;
2650
        bl = al; bh = ah;
2651
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2652
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2653
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2654
        al = ( al + xl )|0;
2655
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2656
2657
        // 77
2658
        w13l = ( w13l + w6l )|0;
2659
        w13h = ( w13h + w6h + ((w13l >>> 0) < (w6l >>> 0) ? 1 : 0) )|0;
2660
        xl = ( ((w14l >>> 1) | (w14h << 31)) ^ ((w14l >>> 8) | (w14h << 24)) ^ ((w14l >>> 7) | (w14h << 25)) )|0;
2661
        w13l = ( w13l + xl)|0;
2662
        w13h = ( w13h + ( ((w14h >>> 1) | (w14l << 31)) ^ ((w14h >>> 8) | (w14l << 24)) ^ (w14h >>> 7) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2663
        xl = ( ((w11l >>> 19) | (w11h << 13)) ^ ((w11l << 3) | (w11h >>> 29)) ^ ((w11l >>> 6) | (w11h << 26)) )|0;
2664
        w13l = ( w13l + xl)|0;
2665
        w13h = ( w13h + ( ((w11h >>> 19) | (w11l << 13)) ^ ((w11h << 3) | (w11l >>> 29)) ^ (w11h >>> 6) ) + ((w13l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2666
        tl = ( 0xfc657e2a + w13l )|0;
2667
        th = ( 0x597f299c + w13h + ((tl >>> 0) < (w13l >>> 0) ? 1 : 0) )|0;
2668
        tl = ( tl + hl )|0;
2669
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2670
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2671
        tl = ( tl + xl )|0;
2672
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2673
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2674
        tl = ( tl + xl )|0;
2675
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2676
        hl = gl; hh = gh;
2677
        gl = fl; gh = fh;
2678
        fl = el; fh = eh;
2679
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2680
        dl = cl; dh = ch;
2681
        cl = bl; ch = bh;
2682
        bl = al; bh = ah;
2683
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2684
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2685
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2686
        al = ( al + xl )|0;
2687
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2688
2689
        // 78
2690
        w14l = ( w14l + w7l )|0;
2691
        w14h = ( w14h + w7h + ((w14l >>> 0) < (w7l >>> 0) ? 1 : 0) )|0;
2692
        xl = ( ((w15l >>> 1) | (w15h << 31)) ^ ((w15l >>> 8) | (w15h << 24)) ^ ((w15l >>> 7) | (w15h << 25)) )|0;
2693
        w14l = ( w14l + xl)|0;
2694
        w14h = ( w14h + ( ((w15h >>> 1) | (w15l << 31)) ^ ((w15h >>> 8) | (w15l << 24)) ^ (w15h >>> 7) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2695
        xl = ( ((w12l >>> 19) | (w12h << 13)) ^ ((w12l << 3) | (w12h >>> 29)) ^ ((w12l >>> 6) | (w12h << 26)) )|0;
2696
        w14l = ( w14l + xl)|0;
2697
        w14h = ( w14h + ( ((w12h >>> 19) | (w12l << 13)) ^ ((w12h << 3) | (w12l >>> 29)) ^ (w12h >>> 6) ) + ((w14l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2698
        tl = ( 0x3ad6faec + w14l )|0;
2699
        th = ( 0x5fcb6fab + w14h + ((tl >>> 0) < (w14l >>> 0) ? 1 : 0) )|0;
2700
        tl = ( tl + hl )|0;
2701
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2702
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2703
        tl = ( tl + xl )|0;
2704
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2705
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2706
        tl = ( tl + xl )|0;
2707
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2708
        hl = gl; hh = gh;
2709
        gl = fl; gh = fh;
2710
        fl = el; fh = eh;
2711
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2712
        dl = cl; dh = ch;
2713
        cl = bl; ch = bh;
2714
        bl = al; bh = ah;
2715
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2716
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2717
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2718
        al = ( al + xl )|0;
2719
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2720
2721
        // 79
2722
        w15l = ( w15l + w8l )|0;
2723
        w15h = ( w15h + w8h + ((w15l >>> 0) < (w8l >>> 0) ? 1 : 0) )|0;
2724
        xl = ( ((w0l >>> 1) | (w0h << 31)) ^ ((w0l >>> 8) | (w0h << 24)) ^ ((w0l >>> 7) | (w0h << 25)) )|0;
2725
        w15l = ( w15l + xl)|0;
2726
        w15h = ( w15h + ( ((w0h >>> 1) | (w0l << 31)) ^ ((w0h >>> 8) | (w0l << 24)) ^ (w0h >>> 7) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2727
        xl = ( ((w13l >>> 19) | (w13h << 13)) ^ ((w13l << 3) | (w13h >>> 29)) ^ ((w13l >>> 6) | (w13h << 26)) )|0;
2728
        w15l = ( w15l + xl)|0;
2729
        w15h = ( w15h + ( ((w13h >>> 19) | (w13l << 13)) ^ ((w13h << 3) | (w13l >>> 29)) ^ (w13h >>> 6) ) + ((w15l >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2730
        tl = ( 0x4a475817 + w15l )|0;
2731
        th = ( 0x6c44198c + w15h + ((tl >>> 0) < (w15l >>> 0) ? 1 : 0) )|0;
2732
        tl = ( tl + hl )|0;
2733
        th = ( th + hh + ((tl >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2734
        xl = ( ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)) )|0;
2735
        tl = ( tl + xl )|0;
2736
        th = ( th + (((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9))) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2737
        xl = ( ( gl ^ el & (fl^gl) ) )|0;
2738
        tl = ( tl + xl )|0;
2739
        th = ( th + ( gh ^ eh & (fh^gh) ) + ((tl >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2740
        hl = gl; hh = gh;
2741
        gl = fl; gh = fh;
2742
        fl = el; fh = eh;
2743
        el = ( dl + tl )|0; eh = ( dh + th + ((el >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2744
        dl = cl; dh = ch;
2745
        cl = bl; ch = bh;
2746
        bl = al; bh = ah;
2747
        al = ( tl + ( (bl & cl) ^ ( dl & (bl ^ cl) ) ) )|0;
2748
        ah = ( th + ( (bh & ch) ^ ( dh & (bh ^ ch) ) ) + ((al >>> 0) < (tl >>> 0) ? 1 : 0) )|0;
2749
        xl = ( ((bl >>> 28) | (bh << 4)) ^ ((bl << 30) | (bh >>> 2)) ^ ((bl << 25) | (bh >>> 7)) )|0;
2750
        al = ( al + xl )|0;
2751
        ah = ( ah + (((bh >>> 28) | (bl << 4)) ^ ((bh << 30) | (bl >>> 2)) ^ ((bh << 25) | (bl >>> 7))) + ((al >>> 0) < (xl >>> 0) ? 1 : 0) )|0;
2752
2753
        H0l = ( H0l + al )|0;
2754
        H0h = ( H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0) )|0;
2755
        H1l = ( H1l + bl )|0;
2756
        H1h = ( H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0) )|0;
2757
        H2l = ( H2l + cl )|0;
2758
        H2h = ( H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0) )|0;
2759
        H3l = ( H3l + dl )|0;
2760
        H3h = ( H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0) )|0;
2761
        H4l = ( H4l + el )|0;
2762
        H4h = ( H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0) )|0;
2763
        H5l = ( H5l + fl )|0;
2764
        H5h = ( H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0) )|0;
2765
        H6l = ( H6l + gl )|0;
2766
        H6h = ( H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0) )|0;
2767
        H7l = ( H7l + hl )|0;
2768
        H7h = ( H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0) )|0;
2769
    }
2770
2771
    function _core_heap ( offset ) {
2772
        offset = offset|0;
2773
2774
        _core(
2775
            HEAP[offset|0]<<24 | HEAP[offset|1]<<16 | HEAP[offset|2]<<8 | HEAP[offset|3],
2776
            HEAP[offset|4]<<24 | HEAP[offset|5]<<16 | HEAP[offset|6]<<8 | HEAP[offset|7],
2777
            HEAP[offset|8]<<24 | HEAP[offset|9]<<16 | HEAP[offset|10]<<8 | HEAP[offset|11],
2778
            HEAP[offset|12]<<24 | HEAP[offset|13]<<16 | HEAP[offset|14]<<8 | HEAP[offset|15],
2779
            HEAP[offset|16]<<24 | HEAP[offset|17]<<16 | HEAP[offset|18]<<8 | HEAP[offset|19],
2780
            HEAP[offset|20]<<24 | HEAP[offset|21]<<16 | HEAP[offset|22]<<8 | HEAP[offset|23],
2781
            HEAP[offset|24]<<24 | HEAP[offset|25]<<16 | HEAP[offset|26]<<8 | HEAP[offset|27],
2782
            HEAP[offset|28]<<24 | HEAP[offset|29]<<16 | HEAP[offset|30]<<8 | HEAP[offset|31],
2783
            HEAP[offset|32]<<24 | HEAP[offset|33]<<16 | HEAP[offset|34]<<8 | HEAP[offset|35],
2784
            HEAP[offset|36]<<24 | HEAP[offset|37]<<16 | HEAP[offset|38]<<8 | HEAP[offset|39],
2785
            HEAP[offset|40]<<24 | HEAP[offset|41]<<16 | HEAP[offset|42]<<8 | HEAP[offset|43],
2786
            HEAP[offset|44]<<24 | HEAP[offset|45]<<16 | HEAP[offset|46]<<8 | HEAP[offset|47],
2787
            HEAP[offset|48]<<24 | HEAP[offset|49]<<16 | HEAP[offset|50]<<8 | HEAP[offset|51],
2788
            HEAP[offset|52]<<24 | HEAP[offset|53]<<16 | HEAP[offset|54]<<8 | HEAP[offset|55],
2789
            HEAP[offset|56]<<24 | HEAP[offset|57]<<16 | HEAP[offset|58]<<8 | HEAP[offset|59],
2790
            HEAP[offset|60]<<24 | HEAP[offset|61]<<16 | HEAP[offset|62]<<8 | HEAP[offset|63],
2791
            HEAP[offset|64]<<24 | HEAP[offset|65]<<16 | HEAP[offset|66]<<8 | HEAP[offset|67],
2792
            HEAP[offset|68]<<24 | HEAP[offset|69]<<16 | HEAP[offset|70]<<8 | HEAP[offset|71],
2793
            HEAP[offset|72]<<24 | HEAP[offset|73]<<16 | HEAP[offset|74]<<8 | HEAP[offset|75],
2794
            HEAP[offset|76]<<24 | HEAP[offset|77]<<16 | HEAP[offset|78]<<8 | HEAP[offset|79],
2795
            HEAP[offset|80]<<24 | HEAP[offset|81]<<16 | HEAP[offset|82]<<8 | HEAP[offset|83],
2796
            HEAP[offset|84]<<24 | HEAP[offset|85]<<16 | HEAP[offset|86]<<8 | HEAP[offset|87],
2797
            HEAP[offset|88]<<24 | HEAP[offset|89]<<16 | HEAP[offset|90]<<8 | HEAP[offset|91],
2798
            HEAP[offset|92]<<24 | HEAP[offset|93]<<16 | HEAP[offset|94]<<8 | HEAP[offset|95],
2799
            HEAP[offset|96]<<24 | HEAP[offset|97]<<16 | HEAP[offset|98]<<8 | HEAP[offset|99],
2800
            HEAP[offset|100]<<24 | HEAP[offset|101]<<16 | HEAP[offset|102]<<8 | HEAP[offset|103],
2801
            HEAP[offset|104]<<24 | HEAP[offset|105]<<16 | HEAP[offset|106]<<8 | HEAP[offset|107],
2802
            HEAP[offset|108]<<24 | HEAP[offset|109]<<16 | HEAP[offset|110]<<8 | HEAP[offset|111],
2803
            HEAP[offset|112]<<24 | HEAP[offset|113]<<16 | HEAP[offset|114]<<8 | HEAP[offset|115],
2804
            HEAP[offset|116]<<24 | HEAP[offset|117]<<16 | HEAP[offset|118]<<8 | HEAP[offset|119],
2805
            HEAP[offset|120]<<24 | HEAP[offset|121]<<16 | HEAP[offset|122]<<8 | HEAP[offset|123],
2806
            HEAP[offset|124]<<24 | HEAP[offset|125]<<16 | HEAP[offset|126]<<8 | HEAP[offset|127]
2807
        );
2808
    }
2809
2810
    // offset — multiple of 32
2811
    function _state_to_heap ( output ) {
2812
        output = output|0;
2813
2814
        HEAP[output|0] = H0h>>>24;
2815
        HEAP[output|1] = H0h>>>16&255;
2816
        HEAP[output|2] = H0h>>>8&255;
2817
        HEAP[output|3] = H0h&255;
2818
        HEAP[output|4] = H0l>>>24;
2819
        HEAP[output|5] = H0l>>>16&255;
2820
        HEAP[output|6] = H0l>>>8&255;
2821
        HEAP[output|7] = H0l&255;
2822
        HEAP[output|8] = H1h>>>24;
2823
        HEAP[output|9] = H1h>>>16&255;
2824
        HEAP[output|10] = H1h>>>8&255;
2825
        HEAP[output|11] = H1h&255;
2826
        HEAP[output|12] = H1l>>>24;
2827
        HEAP[output|13] = H1l>>>16&255;
2828
        HEAP[output|14] = H1l>>>8&255;
2829
        HEAP[output|15] = H1l&255;
2830
        HEAP[output|16] = H2h>>>24;
2831
        HEAP[output|17] = H2h>>>16&255;
2832
        HEAP[output|18] = H2h>>>8&255;
2833
        HEAP[output|19] = H2h&255;
2834
        HEAP[output|20] = H2l>>>24;
2835
        HEAP[output|21] = H2l>>>16&255;
2836
        HEAP[output|22] = H2l>>>8&255;
2837
        HEAP[output|23] = H2l&255;
2838
        HEAP[output|24] = H3h>>>24;
2839
        HEAP[output|25] = H3h>>>16&255;
2840
        HEAP[output|26] = H3h>>>8&255;
2841
        HEAP[output|27] = H3h&255;
2842
        HEAP[output|28] = H3l>>>24;
2843
        HEAP[output|29] = H3l>>>16&255;
2844
        HEAP[output|30] = H3l>>>8&255;
2845
        HEAP[output|31] = H3l&255;
2846
        HEAP[output|32] = H4h>>>24;
2847
        HEAP[output|33] = H4h>>>16&255;
2848
        HEAP[output|34] = H4h>>>8&255;
2849
        HEAP[output|35] = H4h&255;
2850
        HEAP[output|36] = H4l>>>24;
2851
        HEAP[output|37] = H4l>>>16&255;
2852
        HEAP[output|38] = H4l>>>8&255;
2853
        HEAP[output|39] = H4l&255;
2854
        HEAP[output|40] = H5h>>>24;
2855
        HEAP[output|41] = H5h>>>16&255;
2856
        HEAP[output|42] = H5h>>>8&255;
2857
        HEAP[output|43] = H5h&255;
2858
        HEAP[output|44] = H5l>>>24;
2859
        HEAP[output|45] = H5l>>>16&255;
2860
        HEAP[output|46] = H5l>>>8&255;
2861
        HEAP[output|47] = H5l&255;
2862
        HEAP[output|48] = H6h>>>24;
2863
        HEAP[output|49] = H6h>>>16&255;
2864
        HEAP[output|50] = H6h>>>8&255;
2865
        HEAP[output|51] = H6h&255;
2866
        HEAP[output|52] = H6l>>>24;
2867
        HEAP[output|53] = H6l>>>16&255;
2868
        HEAP[output|54] = H6l>>>8&255;
2869
        HEAP[output|55] = H6l&255;
2870
        HEAP[output|56] = H7h>>>24;
2871
        HEAP[output|57] = H7h>>>16&255;
2872
        HEAP[output|58] = H7h>>>8&255;
2873
        HEAP[output|59] = H7h&255;
2874
        HEAP[output|60] = H7l>>>24;
2875
        HEAP[output|61] = H7l>>>16&255;
2876
        HEAP[output|62] = H7l>>>8&255;
2877
        HEAP[output|63] = H7l&255;
2878
    }
2879
2880
    function reset () {
2881
        H0h = 0x6a09e667;
2882
        H0l = 0xf3bcc908;
2883
        H1h = 0xbb67ae85;
2884
        H1l = 0x84caa73b;
2885
        H2h = 0x3c6ef372;
2886
        H2l = 0xfe94f82b;
2887
        H3h = 0xa54ff53a;
2888
        H3l = 0x5f1d36f1;
2889
        H4h = 0x510e527f;
2890
        H4l = 0xade682d1;
2891
        H5h = 0x9b05688c;
2892
        H5l = 0x2b3e6c1f;
2893
        H6h = 0x1f83d9ab;
2894
        H6l = 0xfb41bd6b;
2895
        H7h = 0x5be0cd19;
2896
        H7l = 0x137e2179;
2897
2898
        TOTAL0 = TOTAL1 = 0;
2899
    }
2900
2901
    function init ( h0h, h0l, h1h, h1l, h2h, h2l, h3h, h3l, h4h, h4l, h5h, h5l, h6h, h6l, h7h, h7l, total0, total1 ) {
2902
        h0h = h0h|0;
2903
        h0l = h0l|0;
2904
        h1h = h1h|0;
2905
        h1l = h1l|0;
2906
        h2h = h2h|0;
2907
        h2l = h2l|0;
2908
        h3h = h3h|0;
2909
        h3l = h3l|0;
2910
        h4h = h4h|0;
2911
        h4l = h4l|0;
2912
        h5h = h5h|0;
2913
        h5l = h5l|0;
2914
        h6h = h6h|0;
2915
        h6l = h6l|0;
2916
        h7h = h7h|0;
2917
        h7l = h7l|0;
2918
        total0 = total0|0;
2919
        total1 = total1|0;
2920
2921
        H0h = h0h;
2922
        H0l = h0l;
2923
        H1h = h1h;
2924
        H1l = h1l;
2925
        H2h = h2h;
2926
        H2l = h2l;
2927
        H3h = h3h;
2928
        H3l = h3l;
2929
        H4h = h4h;
2930
        H4l = h4l;
2931
        H5h = h5h;
2932
        H5l = h5l;
2933
        H6h = h6h;
2934
        H6l = h6l;
2935
        H7h = h7h;
2936
        H7l = h7l;
2937
        TOTAL0 = total0;
2938
        TOTAL1 = total1;
2939
    }
2940
2941
    // offset — multiple of 128
2942
    function process ( offset, length ) {
2943
        offset = offset|0;
2944
        length = length|0;
2945
2946
        var hashed = 0;
2947
2948
        if ( offset & 127 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
2949
            return -1;
2950
2951
        while ( (length|0) >= 128 ) {
2952
            _core_heap(offset);
2953
2954
            offset = ( offset + 128 )|0;
2955
            length = ( length - 128 )|0;
2956
2957
            hashed = ( hashed + 128 )|0;
2958
        }
2959
2960
        TOTAL0 = ( TOTAL0 + hashed )|0;
2961
        if ( TOTAL0>>>0 < hashed>>>0 ) TOTAL1 = ( TOTAL1 + 1 )|0;
2962
2963
        return hashed|0;
2964
    }
2965
2966
    // offset — multiple of 128
2967
    // output — multiple of 64
2968
    function finish ( offset, length, output ) {
2969
        offset = offset|0;
2970
        length = length|0;
2971
        output = output|0;
2972
2973
        var hashed = 0,
2974
            i = 0;
2975
2976
        if ( offset & 127 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
2977
            return -1;
2978
2979
        if ( ~output )
2980
            if ( output & 63 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
2981
                return -1;
2982
2983
        if ( (length|0) >= 128 ) {
2984
            hashed = process( offset, length )|0;
2985
            if ( (hashed|0) == -1 )
2986
                return -1;
2987
2988
            offset = ( offset + hashed )|0;
2989
            length = ( length - hashed )|0;
2990
        }
2991
2992
        hashed = ( hashed + length )|0;
2993
        TOTAL0 = ( TOTAL0 + length )|0;
2994
        if ( TOTAL0>>>0 < length>>>0 ) TOTAL1 = ( TOTAL1 + 1 )|0;
2995
2996
        HEAP[offset|length] = 0x80;
2997
2998
        if ( (length|0) >= 112 ) {
2999
            for ( i = (length+1)|0; (i|0) < 128; i = (i+1)|0 )
3000
                HEAP[offset|i] = 0x00;
3001
3002
            _core_heap(offset);
3003
3004
            length = 0;
3005
3006
            HEAP[offset|0] = 0;
3007
        }
3008
3009
        for ( i = (length+1)|0; (i|0) < 123; i = (i+1)|0 )
3010
            HEAP[offset|i] = 0;
3011
3012
        HEAP[offset|120] = TOTAL1>>>21&255;
3013
        HEAP[offset|121] = TOTAL1>>>13&255;
3014
        HEAP[offset|122] = TOTAL1>>>5&255;
3015
        HEAP[offset|123] = TOTAL1<<3&255 | TOTAL0>>>29;
3016
        HEAP[offset|124] = TOTAL0>>>21&255;
3017
        HEAP[offset|125] = TOTAL0>>>13&255;
3018
        HEAP[offset|126] = TOTAL0>>>5&255;
3019
        HEAP[offset|127] = TOTAL0<<3&255;
3020
        _core_heap(offset);
3021
3022
        if ( ~output )
3023
            _state_to_heap(output);
3024
3025
        return hashed|0;
3026
    }
3027
3028
    function hmac_reset () {
3029
        H0h = I0h;
3030
        H0l = I0l;
3031
        H1h = I1h;
3032
        H1l = I1l;
3033
        H2h = I2h;
3034
        H2l = I2l;
3035
        H3h = I3h;
3036
        H3l = I3l;
3037
        H4h = I4h;
3038
        H4l = I4l;
3039
        H5h = I5h;
3040
        H5l = I5l;
3041
        H6h = I6h;
3042
        H6l = I6l;
3043
        H7h = I7h;
3044
        H7l = I7l;
3045
        TOTAL0 = 128;
3046
        TOTAL1 = 0;
3047
    }
3048
3049
    function _hmac_opad () {
3050
        H0h = O0h;
3051
        H0l = O0l;
3052
        H1h = O1h;
3053
        H1l = O1l;
3054
        H2h = O2h;
3055
        H2l = O2l;
3056
        H3h = O3h;
3057
        H3l = O3l;
3058
        H4h = O4h;
3059
        H4l = O4l;
3060
        H5h = O5h;
3061
        H5l = O5l;
3062
        H6h = O6h;
3063
        H6l = O6l;
3064
        H7h = O7h;
3065
        H7l = O7l;
3066
        TOTAL0 = 128;
3067
        TOTAL1 = 0;
3068
    }
3069
3070
    function hmac_init ( p0h, p0l, p1h, p1l, p2h, p2l, p3h, p3l, p4h, p4l, p5h, p5l, p6h, p6l, p7h, p7l, p8h, p8l, p9h, p9l, p10h, p10l, p11h, p11l, p12h, p12l, p13h, p13l, p14h, p14l, p15h, p15l ) {
3071
        p0h = p0h|0;
3072
        p0l = p0l|0;
3073
        p1h = p1h|0;
3074
        p1l = p1l|0;
3075
        p2h = p2h|0;
3076
        p2l = p2l|0;
3077
        p3h = p3h|0;
3078
        p3l = p3l|0;
3079
        p4h = p4h|0;
3080
        p4l = p4l|0;
3081
        p5h = p5h|0;
3082
        p5l = p5l|0;
3083
        p6h = p6h|0;
3084
        p6l = p6l|0;
3085
        p7h = p7h|0;
3086
        p7l = p7l|0;
3087
        p8h = p8h|0;
3088
        p8l = p8l|0;
3089
        p9h = p9h|0;
3090
        p9l = p9l|0;
3091
        p10h = p10h|0;
3092
        p10l = p10l|0;
3093
        p11h = p11h|0;
3094
        p11l = p11l|0;
3095
        p12h = p12h|0;
3096
        p12l = p12l|0;
3097
        p13h = p13h|0;
3098
        p13l = p13l|0;
3099
        p14h = p14h|0;
3100
        p14l = p14l|0;
3101
        p15h = p15h|0;
3102
        p15l = p15l|0;
3103
3104
        // opad
3105
        reset();
3106
        _core(
3107
            p0h ^ 0x5c5c5c5c,
3108
            p0l ^ 0x5c5c5c5c,
3109
            p1h ^ 0x5c5c5c5c,
3110
            p1l ^ 0x5c5c5c5c,
3111
            p2h ^ 0x5c5c5c5c,
3112
            p2l ^ 0x5c5c5c5c,
3113
            p3h ^ 0x5c5c5c5c,
3114
            p3l ^ 0x5c5c5c5c,
3115
            p4h ^ 0x5c5c5c5c,
3116
            p4l ^ 0x5c5c5c5c,
3117
            p5h ^ 0x5c5c5c5c,
3118
            p5l ^ 0x5c5c5c5c,
3119
            p6h ^ 0x5c5c5c5c,
3120
            p6l ^ 0x5c5c5c5c,
3121
            p7h ^ 0x5c5c5c5c,
3122
            p7l ^ 0x5c5c5c5c,
3123
            p8h ^ 0x5c5c5c5c,
3124
            p8l ^ 0x5c5c5c5c,
3125
            p9h ^ 0x5c5c5c5c,
3126
            p9l ^ 0x5c5c5c5c,
3127
            p10h ^ 0x5c5c5c5c,
3128
            p10l ^ 0x5c5c5c5c,
3129
            p11h ^ 0x5c5c5c5c,
3130
            p11l ^ 0x5c5c5c5c,
3131
            p12h ^ 0x5c5c5c5c,
3132
            p12l ^ 0x5c5c5c5c,
3133
            p13h ^ 0x5c5c5c5c,
3134
            p13l ^ 0x5c5c5c5c,
3135
            p14h ^ 0x5c5c5c5c,
3136
            p14l ^ 0x5c5c5c5c,
3137
            p15h ^ 0x5c5c5c5c,
3138
            p15l ^ 0x5c5c5c5c
3139
        );
3140
        O0h = H0h;
3141
        O0l = H0l;
3142
        O1h = H1h;
3143
        O1l = H1l;
3144
        O2h = H2h;
3145
        O2l = H2l;
3146
        O3h = H3h;
3147
        O3l = H3l;
3148
        O4h = H4h;
3149
        O4l = H4l;
3150
        O5h = H5h;
3151
        O5l = H5l;
3152
        O6h = H6h;
3153
        O6l = H6l;
3154
        O7h = H7h;
3155
        O7l = H7l;
3156
3157
        // ipad
3158
        reset();
3159
        _core(
3160
           p0h ^ 0x36363636,
3161
           p0l ^ 0x36363636,
3162
           p1h ^ 0x36363636,
3163
           p1l ^ 0x36363636,
3164
           p2h ^ 0x36363636,
3165
           p2l ^ 0x36363636,
3166
           p3h ^ 0x36363636,
3167
           p3l ^ 0x36363636,
3168
           p4h ^ 0x36363636,
3169
           p4l ^ 0x36363636,
3170
           p5h ^ 0x36363636,
3171
           p5l ^ 0x36363636,
3172
           p6h ^ 0x36363636,
3173
           p6l ^ 0x36363636,
3174
           p7h ^ 0x36363636,
3175
           p7l ^ 0x36363636,
3176
           p8h ^ 0x36363636,
3177
           p8l ^ 0x36363636,
3178
           p9h ^ 0x36363636,
3179
           p9l ^ 0x36363636,
3180
           p10h ^ 0x36363636,
3181
           p10l ^ 0x36363636,
3182
           p11h ^ 0x36363636,
3183
           p11l ^ 0x36363636,
3184
           p12h ^ 0x36363636,
3185
           p12l ^ 0x36363636,
3186
           p13h ^ 0x36363636,
3187
           p13l ^ 0x36363636,
3188
           p14h ^ 0x36363636,
3189
           p14l ^ 0x36363636,
3190
           p15h ^ 0x36363636,
3191
           p15l ^ 0x36363636
3192
        );
3193
        I0h = H0h;
3194
        I0l = H0l;
3195
        I1h = H1h;
3196
        I1l = H1l;
3197
        I2h = H2h;
3198
        I2l = H2l;
3199
        I3h = H3h;
3200
        I3l = H3l;
3201
        I4h = H4h;
3202
        I4l = H4l;
3203
        I5h = H5h;
3204
        I5l = H5l;
3205
        I6h = H6h;
3206
        I6l = H6l;
3207
        I7h = H7h;
3208
        I7l = H7l;
3209
3210
        TOTAL0 = 128;
3211
        TOTAL1 = 0;
3212
    }
3213
3214
    // offset — multiple of 128
3215
    // output — multiple of 64
3216
    function hmac_finish ( offset, length, output ) {
3217
        offset = offset|0;
3218
        length = length|0;
3219
        output = output|0;
3220
3221
        var t0h = 0, t0l = 0, t1h = 0, t1l = 0, t2h = 0, t2l = 0, t3h = 0, t3l = 0,
3222
            t4h = 0, t4l = 0, t5h = 0, t5l = 0, t6h = 0, t6l = 0, t7h = 0, t7l = 0,
3223
            hashed = 0;
3224
3225
        if ( offset & 127 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
3226
            return -1;
3227
3228
        if ( ~output )
3229
            if ( output & 63 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
3230
                return -1;
3231
3232
        hashed = finish( offset, length, -1 )|0;
3233
        t0h = H0h;
3234
        t0l = H0l;
3235
        t1h = H1h;
3236
        t1l = H1l;
3237
        t2h = H2h;
3238
        t2l = H2l;
3239
        t3h = H3h;
3240
        t3l = H3l;
3241
        t4h = H4h;
3242
        t4l = H4l;
3243
        t5h = H5h;
3244
        t5l = H5l;
3245
        t6h = H6h;
3246
        t6l = H6l;
3247
        t7h = H7h;
3248
        t7l = H7l;
3249
3250
        _hmac_opad();
3251
        _core( t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536 );
3252
3253
        if ( ~output )
3254
            _state_to_heap(output);
3255
3256
        return hashed|0;
3257
    }
3258
3259
    // salt is assumed to be already processed
3260
    // offset — multiple of 128
3261
    // output — multiple of 64
3262
    function pbkdf2_generate_block ( offset, length, block, count, output ) {
3263
        offset = offset|0;
3264
        length = length|0;
3265
        block = block|0;
3266
        count = count|0;
3267
        output = output|0;
3268
3269
        var h0h = 0, h0l = 0, h1h = 0, h1l = 0, h2h = 0, h2l = 0, h3h = 0, h3l = 0,
3270
            h4h = 0, h4l = 0, h5h = 0, h5l = 0, h6h = 0, h6l = 0, h7h = 0, h7l = 0,
3271
            t0h = 0, t0l = 0, t1h = 0, t1l = 0, t2h = 0, t2l = 0, t3h = 0, t3l = 0,
3272
            t4h = 0, t4l = 0, t5h = 0, t5l = 0, t6h = 0, t6l = 0, t7h = 0, t7l = 0;
3273
3274
        if ( offset & 127 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
3275
            return -1;
3276
3277
        if ( ~output )
3278
            if ( output & 63 )
0 ignored issues
show
introduced by
You have used a bitwise operator & in a condition. Did you maybe want to use the logical operator &&
Loading history...
3279
                return -1;
3280
3281
        // pad block number into heap
3282
        // FIXME probable OOB write
3283
        HEAP[(offset+length)|0]   = block>>>24;
3284
        HEAP[(offset+length+1)|0] = block>>>16&255;
3285
        HEAP[(offset+length+2)|0] = block>>>8&255;
3286
        HEAP[(offset+length+3)|0] = block&255;
3287
3288
        // finish first iteration
3289
        hmac_finish( offset, (length+4)|0, -1 )|0;
0 ignored issues
show
Unused Code introduced by
The expression hmac_finish(offset, length + 4 | 0, -1) | 0 has no effects. Consider removing it.
Loading history...
3290
3291
        h0h = t0h = H0h;
3292
        h0l = t0l = H0l;
3293
        h1h = t1h = H1h;
3294
        h1l = t1l = H1l;
3295
        h2h = t2h = H2h;
3296
        h2l = t2l = H2l;
3297
        h3h = t3h = H3h;
3298
        h3l = t3l = H3l;
3299
        h4h = t4h = H4h;
3300
        h4l = t4l = H4l;
3301
        h5h = t5h = H5h;
3302
        h5l = t5l = H5l;
3303
        h6h = t6h = H6h;
3304
        h6l = t6l = H6l;
3305
        h7h = t7h = H7h;
3306
        h7l = t7l = H7l;
3307
3308
        count = (count-1)|0;
3309
3310
        // perform the rest iterations
3311
        while ( (count|0) > 0 ) {
3312
            hmac_reset();
3313
            _core( t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536 );
3314
3315
            t0h = H0h;
3316
            t0l = H0l;
3317
            t1h = H1h;
3318
            t1l = H1l;
3319
            t2h = H2h;
3320
            t2l = H2l;
3321
            t3h = H3h;
3322
            t3l = H3l;
3323
            t4h = H4h;
3324
            t4l = H4l;
3325
            t5h = H5h;
3326
            t5l = H5l;
3327
            t6h = H6h;
3328
            t6l = H6l;
3329
            t7h = H7h;
3330
            t7l = H7l;
3331
3332
            _hmac_opad();
3333
            _core( t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536 );
3334
3335
            t0h = H0h;
3336
            t0l = H0l;
3337
            t1h = H1h;
3338
            t1l = H1l;
3339
            t2h = H2h;
3340
            t2l = H2l;
3341
            t3h = H3h;
3342
            t3l = H3l;
3343
            t4h = H4h;
3344
            t4l = H4l;
3345
            t5h = H5h;
3346
            t5l = H5l;
3347
            t6h = H6h;
3348
            t6l = H6l;
3349
            t7h = H7h;
3350
            t7l = H7l;
3351
3352
            h0h = h0h ^ H0h;
3353
            h0l = h0l ^ H0l;
3354
            h1h = h1h ^ H1h;
3355
            h1l = h1l ^ H1l;
3356
            h2h = h2h ^ H2h;
3357
            h2l = h2l ^ H2l;
3358
            h3h = h3h ^ H3h;
3359
            h3l = h3l ^ H3l;
3360
            h4h = h4h ^ H4h;
3361
            h4l = h4l ^ H4l;
3362
            h5h = h5h ^ H5h;
3363
            h5l = h5l ^ H5l;
3364
            h6h = h6h ^ H6h;
3365
            h6l = h6l ^ H6l;
3366
            h7h = h7h ^ H7h;
3367
            h7l = h7l ^ H7l;
3368
3369
            count = (count-1)|0;
3370
        }
3371
3372
        H0h = h0h;
3373
        H0l = h0l;
3374
        H1h = h1h;
3375
        H1l = h1l;
3376
        H2h = h2h;
3377
        H2l = h2l;
3378
        H3h = h3h;
3379
        H3l = h3l;
3380
        H4h = h4h;
3381
        H4l = h4l;
3382
        H5h = h5h;
3383
        H5l = h5l;
3384
        H6h = h6h;
3385
        H6l = h6l;
3386
        H7h = h7h;
3387
        H7l = h7l;
3388
3389
        if ( ~output )
3390
            _state_to_heap(output);
3391
3392
        return 0;
3393
    }
3394
3395
    return {
3396
        // SHA512
3397
        reset: reset,
3398
        init: init,
3399
        process: process,
3400
        finish: finish,
3401
3402
        // HMAC-SHA512
3403
        hmac_reset: hmac_reset,
3404
        hmac_init: hmac_init,
3405
        hmac_finish: hmac_finish,
3406
3407
        // PBKDF2-HMAC-SHA512
3408
        pbkdf2_generate_block: pbkdf2_generate_block
3409
    }
3410
}
3411
3412
var _sha512_block_size = 128,
3413
    _sha512_hash_size = 64;
3414
3415
function sha512_constructor ( options ) {
3416
    options = options || {};
3417
3418
    this.heap = _heap_init( Uint8Array, options );
3419
    this.asm = options.asm || sha512_asm( global, null, this.heap.buffer );
3420
3421
    this.BLOCK_SIZE = _sha512_block_size;
3422
    this.HASH_SIZE = _sha512_hash_size;
3423
3424
    this.reset();
3425
}
3426
3427
sha512_constructor.BLOCK_SIZE = _sha512_block_size;
3428
sha512_constructor.HASH_SIZE = _sha512_hash_size;
3429
var sha512_prototype = sha512_constructor.prototype;
3430
sha512_prototype.reset =   hash_reset;
3431
sha512_prototype.process = hash_process;
3432
sha512_prototype.finish =  hash_finish;
3433
3434
var sha512_instance = null;
3435
3436
function get_sha512_instance () {
3437
    if ( sha512_instance === null ) sha512_instance = new sha512_constructor( { heapSize: 0x100000 } );
3438
    return sha512_instance;
3439
}
3440
3441
function hmac_constructor ( options ) {
3442
    options = options || {};
3443
3444
    if ( !options.hash )
3445
        throw new SyntaxError("option 'hash' is required");
3446
3447
    if ( !options.hash.HASH_SIZE )
3448
        throw new SyntaxError("option 'hash' supplied doesn't seem to be a valid hash function");
3449
3450
    this.hash = options.hash;
3451
    this.BLOCK_SIZE = this.hash.BLOCK_SIZE;
3452
    this.HMAC_SIZE = this.hash.HASH_SIZE;
3453
3454
    this.key = null;
3455
    this.verify = null;
3456
    this.result = null;
3457
3458
    if ( options.password !== undefined || options.verify !== undefined )
3459
        this.reset(options);
3460
3461
    return this;
3462
}
3463
3464
function _hmac_key ( hash, password ) {
3465
    if ( is_buffer(password) )
3466
        password = new Uint8Array(password);
3467
3468
    if ( is_string(password) )
3469
        password = string_to_bytes(password);
3470
3471
    if ( !is_bytes(password) )
3472
        throw new TypeError("password isn't of expected type");
3473
3474
    var key = new Uint8Array( hash.BLOCK_SIZE );
3475
3476
    if ( password.length > hash.BLOCK_SIZE ) {
3477
        key.set( hash.reset().process(password).finish().result );
3478
    }
3479
    else {
3480
        key.set(password);
3481
    }
3482
3483
    return key;
3484
}
3485
3486
function _hmac_init_verify ( verify ) {
3487
    if ( is_buffer(verify) || is_bytes(verify) ) {
3488
        verify = new Uint8Array(verify);
3489
    }
3490
    else if ( is_string(verify) ) {
3491
        verify = string_to_bytes(verify);
3492
    }
3493
    else {
3494
        throw new TypeError("verify tag isn't of expected type");
3495
    }
3496
3497
    if ( verify.length !== this.HMAC_SIZE )
3498
        throw new IllegalArgumentError("illegal verification tag size");
3499
3500
    this.verify = verify;
3501
}
3502
3503
function hmac_reset ( options ) {
3504
    options = options || {};
3505
    var password = options.password;
3506
3507
    if ( this.key === null && !is_string(password) && !password )
3508
        throw new IllegalStateError("no key is associated with the instance");
3509
3510
    this.result = null;
3511
    this.hash.reset();
3512
3513
    if ( password || is_string(password) )
3514
        this.key = _hmac_key( this.hash, password );
3515
3516
    var ipad = new Uint8Array(this.key);
3517
    for ( var i = 0; i < ipad.length; ++i )
3518
        ipad[i] ^= 0x36;
3519
3520
    this.hash.process(ipad);
3521
3522
    var verify = options.verify;
3523
    if ( verify !== undefined ) {
3524
        _hmac_init_verify.call( this, verify );
3525
    }
3526
    else {
3527
        this.verify = null;
3528
    }
3529
3530
    return this;
3531
}
3532
3533
function hmac_process ( data ) {
3534
    if ( this.key === null )
3535
        throw new IllegalStateError("no key is associated with the instance");
3536
3537
    if ( this.result !== null )
3538
        throw new IllegalStateError("state must be reset before processing new data");
3539
3540
    this.hash.process(data);
3541
3542
    return this;
3543
}
3544
3545
function hmac_finish () {
3546
    if ( this.key === null )
3547
        throw new IllegalStateError("no key is associated with the instance");
3548
3549
    if ( this.result !== null )
3550
        throw new IllegalStateError("state must be reset before processing new data");
3551
3552
    var inner_result = this.hash.finish().result;
3553
3554
    var opad = new Uint8Array(this.key);
3555
    for ( var i = 0; i < opad.length; ++i )
3556
        opad[i] ^= 0x5c;
3557
3558
    var verify = this.verify;
3559
    var result = this.hash.reset().process(opad).process(inner_result).finish().result;
3560
3561
    if ( verify ) {
3562
        if ( verify.length === result.length ) {
3563
            var diff = 0;
3564
            for ( var i = 0; i < verify.length; i++ ) {
3565
                diff |= ( verify[i] ^ result[i] );
3566
            }
3567
            this.result = !diff;
3568
        } else {
3569
            this.result = false;
3570
        }
3571
    }
3572
    else {
3573
        this.result = result;
3574
    }
3575
3576
    return this;
3577
}
3578
3579
var hmac_prototype = hmac_constructor.prototype;
3580
hmac_prototype.reset =   hmac_reset;
3581
hmac_prototype.process = hmac_process;
3582
hmac_prototype.finish =  hmac_finish;
3583
3584
function hmac_sha512_constructor ( options ) {
3585
    options = options || {};
3586
3587
    if ( !( options.hash instanceof sha512_constructor ) )
3588
        options.hash = get_sha512_instance();
3589
3590
    hmac_constructor.call( this, options );
3591
3592
    return this;
3593
}
3594
3595
function hmac_sha512_reset ( options ) {
3596
    options = options || {};
3597
3598
    this.result = null;
3599
    this.hash.reset();
3600
3601
    var password = options.password;
3602 View Code Duplication
    if ( password !== undefined ) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
3603
        if ( is_string(password) )
3604
            password = string_to_bytes(password);
3605
3606
        var key = this.key = _hmac_key( this.hash, password );
3607
        this.hash.reset().asm.hmac_init(
3608
                (key[0]<<24)|(key[1]<<16)|(key[2]<<8)|(key[3]),
3609
                (key[4]<<24)|(key[5]<<16)|(key[6]<<8)|(key[7]),
3610
                (key[8]<<24)|(key[9]<<16)|(key[10]<<8)|(key[11]),
3611
                (key[12]<<24)|(key[13]<<16)|(key[14]<<8)|(key[15]),
3612
                (key[16]<<24)|(key[17]<<16)|(key[18]<<8)|(key[19]),
3613
                (key[20]<<24)|(key[21]<<16)|(key[22]<<8)|(key[23]),
3614
                (key[24]<<24)|(key[25]<<16)|(key[26]<<8)|(key[27]),
3615
                (key[28]<<24)|(key[29]<<16)|(key[30]<<8)|(key[31]),
3616
                (key[32]<<24)|(key[33]<<16)|(key[34]<<8)|(key[35]),
3617
                (key[36]<<24)|(key[37]<<16)|(key[38]<<8)|(key[39]),
3618
                (key[40]<<24)|(key[41]<<16)|(key[42]<<8)|(key[43]),
3619
                (key[44]<<24)|(key[45]<<16)|(key[46]<<8)|(key[47]),
3620
                (key[48]<<24)|(key[49]<<16)|(key[50]<<8)|(key[51]),
3621
                (key[52]<<24)|(key[53]<<16)|(key[54]<<8)|(key[55]),
3622
                (key[56]<<24)|(key[57]<<16)|(key[58]<<8)|(key[59]),
3623
                (key[60]<<24)|(key[61]<<16)|(key[62]<<8)|(key[63]),
3624
                (key[64]<<24)|(key[65]<<16)|(key[66]<<8)|(key[67]),
3625
                (key[68]<<24)|(key[69]<<16)|(key[70]<<8)|(key[71]),
3626
                (key[72]<<24)|(key[73]<<16)|(key[74]<<8)|(key[75]),
3627
                (key[76]<<24)|(key[77]<<16)|(key[78]<<8)|(key[79]),
3628
                (key[80]<<24)|(key[81]<<16)|(key[82]<<8)|(key[83]),
3629
                (key[84]<<24)|(key[85]<<16)|(key[86]<<8)|(key[87]),
3630
                (key[88]<<24)|(key[89]<<16)|(key[90]<<8)|(key[91]),
3631
                (key[92]<<24)|(key[93]<<16)|(key[94]<<8)|(key[95]),
3632
                (key[96]<<24)|(key[97]<<16)|(key[98]<<8)|(key[99]),
3633
                (key[100]<<24)|(key[101]<<16)|(key[102]<<8)|(key[103]),
3634
                (key[104]<<24)|(key[105]<<16)|(key[106]<<8)|(key[107]),
3635
                (key[108]<<24)|(key[109]<<16)|(key[110]<<8)|(key[111]),
3636
                (key[112]<<24)|(key[113]<<16)|(key[114]<<8)|(key[115]),
3637
                (key[116]<<24)|(key[117]<<16)|(key[118]<<8)|(key[119]),
3638
                (key[120]<<24)|(key[121]<<16)|(key[122]<<8)|(key[123]),
3639
                (key[124]<<24)|(key[125]<<16)|(key[126]<<8)|(key[127])
3640
        );
3641
    }
3642
    else {
3643
        this.hash.asm.hmac_reset();
3644
    }
3645
3646
    var verify = options.verify;
3647
    if ( verify !== undefined ) {
3648
        _hmac_init_verify.call( this, verify );
3649
    }
3650
    else {
3651
        this.verify = null;
3652
    }
3653
3654
    return this;
3655
}
3656
3657
function hmac_sha512_finish () {
3658
    if ( this.key === null )
3659
        throw new IllegalStateError("no key is associated with the instance");
3660
3661
    if ( this.result !== null )
3662
        throw new IllegalStateError("state must be reset before processing new data");
3663
3664
    var hash = this.hash,
3665
        asm = this.hash.asm,
3666
        heap = this.hash.heap;
3667
3668
    asm.hmac_finish( hash.pos, hash.len, 0 );
3669
3670
    var verify = this.verify;
3671
    var result = new Uint8Array(_sha512_hash_size);
3672
    result.set( heap.subarray( 0, _sha512_hash_size ) );
3673
3674
    if ( verify ) {
3675
        if ( verify.length === result.length ) {
3676
            var diff = 0;
3677
            for ( var i = 0; i < verify.length; i++ ) {
3678
                diff |= ( verify[i] ^ result[i] );
3679
            }
3680
            this.result = !diff;
3681
        } else {
3682
            this.result = false;
3683
        }
3684
    }
3685
    else {
3686
        this.result = result;
3687
    }
3688
3689
    return this;
3690
}
3691
3692
hmac_sha512_constructor.BLOCK_SIZE = sha512_constructor.BLOCK_SIZE;
3693
hmac_sha512_constructor.HMAC_SIZE = sha512_constructor.HASH_SIZE;
3694
3695
var hmac_sha512_prototype = hmac_sha512_constructor.prototype;
3696
hmac_sha512_prototype.reset = hmac_sha512_reset;
3697
hmac_sha512_prototype.process = hmac_process;
3698
hmac_sha512_prototype.finish = hmac_sha512_finish;
3699
3700
var hmac_sha512_instance = null;
3701
3702
function get_hmac_sha512_instance () {
3703
    if ( hmac_sha512_instance === null ) hmac_sha512_instance = new hmac_sha512_constructor();
3704
    return hmac_sha512_instance;
3705
}
3706
3707
function pbkdf2_constructor ( options ) {
3708
    options = options || {};
3709
3710
    if ( !options.hmac )
3711
        throw new SyntaxError("option 'hmac' is required");
3712
3713
    if ( !options.hmac.HMAC_SIZE )
3714
        throw new SyntaxError("option 'hmac' supplied doesn't seem to be a valid HMAC function");
3715
3716
    this.hmac = options.hmac;
3717
    this.count = options.count || 4096;
3718
    this.length = options.length || this.hmac.HMAC_SIZE;
3719
3720
    this.result = null;
3721
3722
    var password = options.password;
3723
    if ( password || is_string(password) )
3724
        this.reset(options);
3725
3726
    return this;
3727
}
3728
3729
function pbkdf2_reset ( options ) {
3730
    this.result = null;
3731
3732
    this.hmac.reset(options);
3733
3734
    return this;
3735
}
3736
3737
function pbkdf2_generate ( salt, count, length ) {
3738
    if ( this.result !== null )
3739
        throw new IllegalStateError("state must be reset before processing new data");
3740
3741
    if ( !salt && !is_string(salt) )
3742
        throw new IllegalArgumentError("bad 'salt' value");
3743
3744
    count = count || this.count;
3745
    length = length || this.length;
3746
3747
    this.result = new Uint8Array(length);
3748
3749
    var blocks = Math.ceil( length / this.hmac.HMAC_SIZE );
3750
3751 View Code Duplication
    for ( var i = 1; i <= blocks; ++i ) {
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
3752
        var j = ( i - 1 ) * this.hmac.HMAC_SIZE;
3753
        var l = ( i < blocks ? 0 : length % this.hmac.HMAC_SIZE ) || this.hmac.HMAC_SIZE;
3754
        var tmp = new Uint8Array( this.hmac.reset().process(salt).process( new Uint8Array([ i>>>24&0xff, i>>>16&0xff, i>>>8&0xff, i&0xff ]) ).finish().result );
3755
        this.result.set( tmp.subarray( 0, l ), j );
3756
        for ( var k = 1; k < count; ++k ) {
3757
            tmp = new Uint8Array( this.hmac.reset().process(tmp).finish().result );
3758
            for ( var r = 0; r < l; ++r ) this.result[j+r] ^= tmp[r];
3759
        }
3760
    }
3761
3762
    return this;
3763
}
3764
3765
// methods
3766
var pbkdf2_prototype = pbkdf2_constructor.prototype;
3767
pbkdf2_prototype.reset =   pbkdf2_reset;
3768
pbkdf2_prototype.generate = pbkdf2_generate;
3769
3770
function pbkdf2_hmac_sha512_constructor ( options ) {
3771
    options = options || {};
3772
3773
    if ( !( options.hmac instanceof hmac_sha512_constructor ) )
3774
        options.hmac = get_hmac_sha512_instance();
3775
3776
    pbkdf2_constructor.call( this, options );
3777
3778
    return this;
3779
}
3780
3781
function pbkdf2_hmac_sha512_generate ( salt, count, length ) {
3782
    if ( this.result !== null )
3783
        throw new IllegalStateError("state must be reset before processing new data");
3784
3785
    if ( !salt && !is_string(salt) )
3786
        throw new IllegalArgumentError("bad 'salt' value");
3787
3788
    count = count || this.count;
3789
    length = length || this.length;
3790
3791
    this.result = new Uint8Array(length);
3792
3793
    var blocks = Math.ceil( length / this.hmac.HMAC_SIZE );
3794
3795
    for ( var i = 1; i <= blocks; ++i ) {
3796
        var j = ( i - 1 ) * this.hmac.HMAC_SIZE;
3797
        var l = ( i < blocks ? 0 : length % this.hmac.HMAC_SIZE ) || this.hmac.HMAC_SIZE;
3798
3799
        this.hmac.reset().process(salt);
3800
        this.hmac.hash.asm.pbkdf2_generate_block( this.hmac.hash.pos, this.hmac.hash.len, i, count, 0 );
3801
3802
        this.result.set( this.hmac.hash.heap.subarray( 0, l ), j );
3803
    }
3804
3805
    return this;
3806
}
3807
3808
var pbkdf2_hmac_sha512_prototype = pbkdf2_hmac_sha512_constructor.prototype;
3809
pbkdf2_hmac_sha512_prototype.reset =   pbkdf2_reset;
3810
pbkdf2_hmac_sha512_prototype.generate = pbkdf2_hmac_sha512_generate;
3811
3812
var pbkdf2_hmac_sha512_instance = null;
3813
3814
function get_pbkdf2_hmac_sha512_instance () {
3815
    if ( pbkdf2_hmac_sha512_instance === null ) pbkdf2_hmac_sha512_instance = new pbkdf2_hmac_sha512_constructor();
3816
    return pbkdf2_hmac_sha512_instance;
3817
}
3818
3819
/**
3820
 * PBKDF2-HMAC-SHA512 exports
3821
 */
3822
3823
function pbkdf2_hmac_sha512_bytes ( password, salt, iterations, dklen ) {
3824
    if ( password === undefined ) throw new SyntaxError("password required");
3825
    if ( salt === undefined ) throw new SyntaxError("salt required");
3826
    return get_pbkdf2_hmac_sha512_instance().reset( { password: password } ).generate( salt, iterations, dklen ).result;
3827
}
3828
3829
function pbkdf2_hmac_sha512_hex ( password, salt, iterations, dklen ) {
3830
    var result = pbkdf2_hmac_sha512_bytes( password, salt, iterations, dklen );
3831
    return bytes_to_hex(result);
3832
}
3833
3834
function pbkdf2_hmac_sha512_base64 ( password, salt, iterations, dklen ) {
3835
    var result = pbkdf2_hmac_sha512_bytes( password, salt, iterations, dklen );
3836
    return bytes_to_base64(result);
3837
}
3838
3839
exports.PBKDF2_HMAC_SHA512 = {
3840
    bytes: pbkdf2_hmac_sha512_bytes,
3841
    hex: pbkdf2_hmac_sha512_hex,
3842
    base64: pbkdf2_hmac_sha512_base64
3843
};
3844
3845
3846
'function'==typeof define&&define.amd?define([],function(){return exports}):'object'==typeof module&&module.exports?module.exports=exports:global.asmCrypto=exports;
3847
3848
return exports;
3849
})( {}, function(){return this}() );
3850
//# sourceMappingURL=asmcrypto.js.map